mysql 经常使用语句

打开数据库:sudo service mysql start
使用root 登陆:mysql -u root
建立数据库:CREATE DATABASE mysql_shiyan;
查询数据库:show databases;
链接数据库:use mysql_shiyan;
查询表:show tables;
建立表:CREATE TABLE employee(id int(10),name char(20),phone(12));
删除表:DROP DATABASE mysql_shiyan;
插入表数据:INSERT INTO employee(id ,name,phone) VALUES (01,'TOM',18868830303);
 
一、数据类型:
INT 4 整数
FLOAT 4 单精度浮点数
DOUBLE 8 双精度浮点数
ENUM 单选,好比性别 ENUM('a','b','c')
SET 多选 SET('1','2','3')
DATE 3 日期 YYYY-MM-DD
TIME 3 时间点或持续时间 HH:MM:SS
YEAR 1 年份值 YYYY
CHAR 0~255 定长字符串
VARCHAR 0~255 变长字符串
TEXT 0~65535 长文本数据
 
二、 在MySQL中,一般有这几种约束
约束类型:主键 默认值 惟一 外键 非空
关键字: PRIMARY KEY DEFAULT UNIQUE FOREIGN KEY NOT NULL
 
主键 (PRIMARY KEY)是用于约束表中的一行,做为这一行的惟一标识符
默认值约束 (DEFAULT) 规定,当有 DEFAULT 约束的列,插入数据为空时,将使用默认值。
惟一约束 (UNIQUE) 比较简单,它规定一张表中指定的一列的值必须不能有重复值,即这一列每一个值都是惟一的。
外键约束,一个表能够有多个外键,每一个外键必须 REFERENCES (参考) 另外一个表的主键,被外键约束的列,取值必须在它参考的列中有对应值。
非空约束 (NOT NULL),听名字就能理解,被非空约束的列,在插入值时必须非空。
 
CREATE TABLE employee
(
id INT(10) PRIMARY KEY,
name CHAE(20) DEFAULT 'Tom',
UNIQUE (phone),
salary INT(10) NOT NULL,
);
 
三、WHERE限制条件
数学符号 (=,<,>,>=,<=)
OR(或) 和 AND(且)和BETWEEN(包含)
select name,age from employee where age>25 or age>30;
IN和NOT IN
SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt NOT IN ('dpt1','dpt3');
通配符LIKE
其中 _ 表明一个未指定字符,% 表明不定个未指定字符。
SELECT name,age,phone FROM employee WHERE phone LIKE '1101__';
SELECT name,age,phone FROM employee WHERE name LIKE 'J%';
ORDER BY 排序
ASC和DESC升序或降序
SELECT name,age,salary,phone FROM employee ORDER BY salary DESC;
 
四、SQL 内置函数和计算
函数名: COUNT SUM AVG MAX MIN
做用: 计数 求和 求平均值 最大值 最小值
 
SELECT MAX(salary) AS max_salary,MIN(salary) FROM employee; 使用AS关键词能够给值重命名
 
五、子查询
处理多个表才能得到所需的信息。
例如:想要知道名为 "Tom" 的员工所在部门作了几个工程。员工信息储存在 employee 表中,但工程信息储存在project 表中。
SELECT of_dpt,COUNT(proj_name) AS count_project FROM project
WHERE of_dpt IN (SELECT in_dpt FROM employee WHERE name='Tom');
 
六、链接查询
在处理多个表时,子查询只有在结果来自一个表时才有用。但若是须要显示两个表或多个表中的数据,这时就必须使用链接 (join) 操做。
链接的基本思想是把两个或多个表看成一个新的表来操做,以下:
SELECT id,name,people_num
FROM employee,department
WHERE employee.in_dpt = department.dpt_name
ORDER BY id;
 
SELECT id,name,people_num
FROM employee JOIN department
ON employee.in_dpt = department.dpt_name
ORDER BY id;
 
七、重命名一张表
重命名一张表的语句有多种形式,如下 3 种格式效果是同样的:
RENAME TABLE 原名 TO 新名字;
ALTER TABLE 原名 RENAME 新名;
ALTER TABLE 原名 RENAME TO 新名;
删除一张表:
DROP TABLE 表名字;
增长一列:
ALTER TABLE 表名字 ADD COLUMN 列名字 数据类型 约束;
ALTER TABLE 表名字 ADD 列名字 数据类型 约束 AFTER 列名称; (“AFTER 列1” 表示新增的列被放置在 “列1” 的后面)
ALTER TABLE employee ADD test INT(10) DEFAULT 11 FIRST;(放在第一列的位置,使用 FIRST)
删除一列:
ALTER TABLE 表名字 DROP COLUMN 列名字;(语句后面不须要有数据类型、约束或位置信息)
或: ALTER TABLE 表名字 DROP 列名字;
重命名一列:
这条语句其实不仅可用于重命名一列,准确地说,它是对一个列作修改(CHANGE) :
ALTER TABLE 表名字 CHANGE 原列名 新列名 数据类型 约束;
改变数据类型:
要修改一列的数据类型,除了使用刚才的CHANGE语句外,还能够用这样的MODIFY语句:
ALTER TABLE 表名字 MODIFY 列名字 新数据类型;
修改表中某个值:
大多数时候咱们须要作修改的不会是整个数据库或整张表,而是表中的某一个或几个数据,这就须要咱们用下面这条命令达到精确的修改:
UPDATE 表名字 SET 列1=值1,列2=值2 WHERE 条件;
删除一行记录:
删除表中的一行数据,也必须加上WHERE条件,不然整列的数据都会被删除。删除语句:
DELETE FROM 表名字 WHERE 条件;
相关文章
相关标签/搜索