结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统
SQL的分类
分类 | 全称 | 说明 |
DDL | Data Definition Language(数据定义语言) | 用来定义数据库对象(数据库,表,字段等) |
DML | Data Manipulation Language(数据库操作语言) | 用来对数据库表中的数据进行增删改 |
DQL | Data QueryLanguage(数据查询语言) | 用来查询数据库中表的记录 |
DCL | Data Control Language(数据控制语言) | 用来创建数据库用户、控制数据库的访问权限 |
SQL通用语法
- SQL语句可以单行或多行书写,已分号结尾
- SQL语句可以使用空格/缩进来增强语句的可读性
- Mysql数据库的SQL语句不区分大小写,关键字建议使用大写
- 注释:
- 单行注释:--注释内容或#注释内容
- 多行注释:/*注释内容*/
DDL——数据库的操作
1.查询
查询所有的数据库——输入show databases;
框里面位系统自带的数据库
查询当前数据库——输入select database();
2.创建
格式:create database [if not exists] 数据库名 [default charset字符集] [collate排序规则]
上面括号里面的内容可以不要,整体格式就只是create database 数据库名
显示OK则表示创建成功
如果在创建一个同样名字的数据库,他就会报错
为了避免上面的情况,我们在创建数据库的时候,可以在数据库名前面加上if not exists这样即使我们创建了相同名字的数据库,他也不会报错,但还是只有一个相同名字的数据库
3.使用
格式:use 数据库名;
使用数据库,一般是要对数据库进行相应的操作
4.删除
格式:drop database [if exists] 数据库名;
DDL——表操作——创建
格式:create table 表名(
字段1 字段1类型 [comment 字段1注释],
字段2 字段2类型 [comment 字段2注释],
字段3 字段3类型 [comment 字段3注释],
...
字段n 字段n类型 [comment 字段n注释]
) [comment 表注释];
DDL——表操作——查询
查询当前数据库的所有表:show tables;
查询表结构:desc 表名;
查询指定表的建表语句:show create table 表名;
DDL——表操作——数据类型
Mysql中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。
数值类型
类型 | 大小 | 有符号数范围 | 无符号数范围 | 描述 |
tinyint | 1字节 | (-128,127) | (0,255) | 小整数值 |
smallint | 2字节 | (-32768,32767) | (0,65535) | 大整数值 |
mediumint | 3字节 | (-8388608,8388607) | (0,16777215) | 大数值 |
int或integer | 4字节 | (-2147483648,2147483647) | (0,4294967295) | 大整数值 |
bigint | 8字节 | (-2^64,2^64-1) | (0,2^64-1) | 极大整数值 |
float | 4字节 | (-3.402823466 E+38,3.402823466351 E+38) | 0和(1.175494351 E-38,3.402823466351 E+38) | 单精度浮点数 |
double | 8字节 | (-1.7976931348623157 E+308,1.7976931348623157 E+308) | 0和1.7976931348623157 E+308 | 双精度浮点数 |
decimal | 依赖于M(精度)和D(标度)的值 | 依赖于M(精度)和D(标度)的值 | 小数值(精确定点数) |
字符类型
日期类型
实例
根据需求创建表,要求如下
1.编号(纯数字)
2.员工工号(字符串类型,长度不超过10位)
3.员工姓名(字符串类型,长度不超过10位)
4.性别(男/女,存储一个汉字)
5.年龄(正常人年龄)
6.身份证号(二代身份证均为18位,身份证位数不够的用X代替)
7.入职时间(取值年月日即可)
DDL——表操作——修改
修改数据类型:alter table 表名 modify 字段名 新数据类型(长度);
修改字段名和数据类型:alert table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释];
删除字段:alter table 表名 drop 字段名;
修改表名:alter table 表名 rename to 新表名;
DDL——表操作——删除
删除表:drop table [if exists] 表名;
删除指定表,并重新创建该表(意思就是将表里面的内容全部删掉,但表还存在) :truncate table 表名;