SQL 通用语法及分类
sql通用语法
1.sql语句可以单行或多行书写,以分号结尾。
2.sql语句可以使用空格/缩进来增强语句的可读性。
3.MySQL数据库的sql语句不区分大小写,关键字建议使用大写
4.注释
单行注释:–注释内容或#注释内容(MySQL特有)
多行注释 /*注释内容*/
SQL分类
| DDL | data definition language | 数据定义语言,用来定义数据库对象(数据库、表、字段) |
| DML | data manipulation language | 数据操作语言,用来对数据库中表中的数据进行增删改 |
| DQL | data query language | 数据查询语言,用来查询数据库表中的记录 |
| DCL | data control language | 数据控制语言,用来创建数据库用户,控制数据库的访问权限 |
DDL-数据库操作
查询所有数据库
show databases;
查询当前数据库
select database();
创建
create database [if not exists] 数据库名 [default charset 字符集][collate 排序规则];
删除
drop database [if exists]数据库名;
使用
use 数据库名;
DDL-表操作-查询
查询当前数据库所有的表
show tables;
查询表结构
desc 表名;
查询指定表的建表语句
show create table 表名;
DDL-表操作-创建
create table 表名(
字段1 字段1类型[comment 字段1注释],
字段2 字段2类型[comment 字段1注释],
……
字段n 字段n类型[comment 字段n注释]
)[comment 表注释];
create table tb_user(
id int comment '编号',
name varchar(50) comment '姓名',
age int comment '年龄',
gender varchar(1) comment '性别'
) comment '用户表';
Query OK, 0 rows affected (0.03 sec)
DDL-表操作-数据类型
MySQL中的数据类型有很多,主要分为三类,数值类型、字符串类型、日期和时间类型
| TINYINT(1 byte) | (-128,127) | (0,255) |
| INT或INTEFER(4 byte) | (-32768,32768) | (0,65535) |
| float 4 bytes | ||
| double 8 bytes | 例如 sorce double(4,1) 4整体长度 1小数位长度 |
| char 0-255 bytes | 定长字符串 |
| varchar 0-65535 bytes | 变长字符串 |
| text 0-65535 bytes | 长文本数据 |
| char(10)固定存储 10 个字符 varchar(10)10 字符串个长度限制 最多存储 10 个字符,用多少存多少 |
| DATE | 1000-01-01至 9999-12-31 | YYYY-MM-DD |
| TIME | -838:59:59 至 838:59:59 | HH:MM:SS |
| DATATIME | 1000-01-01 00:00:00 至 999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS |
根据需求创建表(设计合理的数据类型、长度)
1.编号(纯数字)
2.员工工号(字符串类型,长度不超过10位)
3.员工姓名(字符串长度,长度不超过10位)
4.性别 (男/女 存储一个汉字)
5.年龄 (正常人年龄)
6.身份证号(18位身份证号)
7.入职时间(取值年月日)
create table emp(
id int comment'编号',
workno varchar(10) comment '工号',
name varchar(10) comment '姓名',
gender char(1) comment '性别',
age tinyint unsigned comment '年龄',
entry date comment '入职时间'
)comment '员工表';
DDL-表操作-修改
ALTER TABLE 表名 ADD 字段名 类型(长度)[comment 注释] [约束];
alter table emp add nickname varchar(20) comment '昵称';
DDL-表操作-修改
修改数据类型
alter table modify 字段名 新数据类型(长度);
修改字段名和数据类型
alter 表名 change 旧字段名 新字段名 类型(长度) [comment 注释][约束]
alter table emp change nickname username varchar(30) comment '用户名';
删除字段
alter table 表名 drop 字段名;
alter table emp drop username;
修改表名
alter table emp rename to employee;
DDL-表操作-删除
drop table [if exists] 表名;
删除指定表,并重新创建表
truncate table 表名;



