SQL基础
SQL分类
(1) DDL(Data Definition Languages):数据定义语言:不同的数据段、数据库、表、列、索引等数据库对象的定义(create、drop、alter)
(2) DML (Data Manipulation Language):数据操纵语句:增删改查(inset、delete、select)
(3) DCL(Data Control Language) :数据控制语句:数据库、表、字段、用户的访问权限和安全级别。
1.DDL数据定义语句
对数据库内部的对象进行创建、删除、修改的操作语言。涉及表的定义,结构的修改。
语句 | 意义 |
---|---|
CREATE DATABASE dbname | 创建数据库 |
SHOW databases/tables | 查看系统存在哪些数据库/数据表 |
USE dbname | 选择数据库 |
DROP DATABASE dbname | 删除数据库 |
DROP TABLE tablename | 删除表 |
CREATE TABLE tablename ( column_name_1 column_type_1 constraints, column_name_2 column_type_2 constraints , …… column_name_n column_type_n constraints ) | 创建数据库 |
DESC tablename | 查看表定义 |
SHOW CREATE TABLE tablename \G | 查看更详细的表定义,\G表示使字段按照顺序竖着排列 |
ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST | AFTER col_name] | 修改表类型 |
ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST | AFTER col_name] | 增加表字段 |
ALTER TABLE tablename DROP [COLUMN] col_name | 删除表字段 |
ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name] | 字段改名 |
ALTER TABLE tablename RENAME [TO] new_tablename | 表改名 |
2.DML数据操纵语句
DML 操作是指对数据库中表记录的操作,主要包括表记录的插入(insert)、更新(update)、删除(delete)和查询(select)
语句 | 意义 |
---|---|
INSERT INTO tablename (field1,field2,……fieldn) VALUES(value1,value2,……valuesn); | 插入记录 |
UPDATE tablename SET field1=value1,field2.=value2,……fieldn=valuen [WHERE CONDITION] | 更新记录 |
DELETE FROM tablename [WHERE CONDITION] | 删除记录 |
SELECT * FROM tablename [WHERE CONDITION] | 查询记录 |
SELECT DISTINCT column_name FROM tablename [WHERE CONDITION] | 查询不重复的记录 |
SELECT * FROM tablename [WHERE CONDITION] [ORDER BY field1 [DESC | ASC], field2[DESC | ASC], ……fieldn [DESC|ASC] [LIMIT offset_start,row_count] | 排序限制 |
SELECT [field1,field2,……fieldn] fun_name FROM tablename [WHERE where_contition] [GROUP BY field1,field2,……fieldn [WITH ROLLUP]] [HAVING where_contition] | 聚合操作group by /having |
SELECT ename,deptname FROM dept RIGHT JOIN[LEFT JOIN] emp ON dept.deptno=emp.deptno; | 右连接right join 左连接left join |
in、not in、=、!=、exists、not exists | 子查询 |
SELECT * FROM t1 UNION|UNION ALL SELECT * FROM t2 …… UNION|UNION ALL SELECT * FROM tn; | 记录联合 |
3.DCL数据控制语句
DCL 语句主要是 DBA 用来管理系统中的对象权限时所使用
语句 | 意义 |
---|---|
grant select,insert on sakila.* to ‘z1’@‘localhost’ identified by ‘123’ | 创建一个数据库用户 z1,具有对 sakila 数据库中所有表的 SELECT/INSERT 权限 |
revoke insert on sakila.* from ‘z1’@‘localhost’; | 将z1 的权限变更,收回 INSERT,只能对数据进行 SELECT 操作 |
4.帮助的使用
语句 | 意义 |
---|---|
?contents | 显示所有可供查询的的分类 |
? data types | Mysql支持的数据类型 |
? show | … |
… | … |
5.MYSQL支持的数据类型
(1)数值型
整数:tinyint smallint mediumint int/integer bigint 浮点数:float double 定点数:dec(m,d) decimal(m,d):m表示长度,d表示小数位数 位:bit
(2)日期和时间类型
date datetime timestamp time year
(3)字符串类型
整数:char varchar 字节:tinyblob blob mediumblob longblob tinytext text mediumtext longtext varbinary binary