一 . 通用语法 :
1)支持单行誊写,或多行誊写,以分号末端。
在后面的触发器/存储函数/存储过程的学习中,需要修改末端的标志,不以分号末端
DELIMITER $$ -- 设置新分隔符为双美元符号$
CREATE PROCEDURE my_procedure() BEGIN -- SQL 语句...
END$$
DELIMITER ; -- 恢复到默认的分号分隔符
2)解释: 单行解释:-- 解释内容 大概 #解释内容(MySQL特有)
多行解释:/*解释内容*/
3)Mysql 数据库的SQL语句不区分巨细写,关键字发起使用大写
4)SQL语句可以使用空格/缩进来增强语句的可读性。
二 . SQL分类:
1)DDL(数据定义语言):定义数据库对象(数据库,表,字段)
2)DML(数据利用语言): 对数据库表中的 数据 进行增删改
3)DQL(数据查询语言): 用来查询数据库中表的记载
4)DCL(数据控制语言): 创建数据库用户,控制数据库的访问权限
三 . DDL
Data Definition Language,数据定义语言,用来定义数据库对象(数据库,表,字段)
3.1 数据库利用
1)查询:
- 查询所有数据库: show databases; --> 注意:+s , 不要把data 写成 date !!!
- 查询当前数据库:select database();
2) 创建
create database [if not exists] 数据库名 [default charset字符集] [collate 排序规则];
在同一个数据库服务器中,不能创建两个名称相同的数据库,否则将会报错。
注:这里我们可以使用键盘的上下键来拿到之前写过的下令行 , 发起对语法有富足熟悉才使用,把根本打踏实为先!
可以通过if not exists 参数来解决这个标题,数据库不存在, 则创建该数据库,假如存在,则不 创建。
创建数据库,而且指定字符集 (default charset utf8mb4)
3)删除
drop database [if exists] 数据库名;
假如删除一个不存在的数据库,将会报错。此时,可以加上参数 if exists ,假如数据库存在,再 执行删除,否则不执行删除。
4)使用
use 数据库名;
我们要利用某一个数据库下的表时,就需要通过该指令,切换到对应的数据库下,否则是不能利用的。
3.2 表利用
3.2.1 查询当前数据库所有表
show tables; 我们可以切换到sys这个系统数据库,并查看系统数据库中的所有表结构
3.2.2 创建表结构
CREATE TABLE 表名 ( 字段 1 字段 1 范例 [ COMMENT 字段 1 解释 ], 字段 2 字段 2 范例 [COMMENT 字段 2 解释 ], 字段 3 字段 3 范例 [COMMENT 字段 3 解释 ], ...... 字段 n 字段 n 范例 [COMMENT 字段 n 解释 ] ) [ COMMENT 表解释 ] ; 注意:注意: [...] 内为可选参数,末了一个字段后面没有逗号 创建一下表的结构:
id | name | age | gender | 1 | 张三 | 28 | 男 | 2 | 李四 | 18 | 男 | 3 | 王五 | 33 | 男 |
3.2.3 查看指定表结构
desc 表名 ;
通过这条指令,我们可以查看到指定表的字段,字段的范例、是否可以为NULL,是否存在默认值等信息。
3.2.4 查询指定表的建表语句
show create table 表名 ; 通过这条指令,重要是用来查看建表语句的,而有部门参数我们在创建表的时候,并未指定也会查询到,由于这部门是数据库的默认值,如:存储引擎、字符集等。
3.2.5 修改
1.添加字段:
ALTER TABLE 表名 ADD 字段名 范例 (长度) [ COMMENT 解释 ] [ 束缚 ];
案例:这里可以先跳到第四点的数据范例,查看后,把emp表创建了,再进行如下利用 为 emp 表增长一个新的字段 ”工资 ” 为salar ,范例为int
2. 修改数据范例
ALTER TABLE 表名 MODIFY 字段名 新数据范例 ( 长度 ); 3.修改字段名和字段范例 ALTER TABLE 表名 CHANGE 旧字段名 新字段名 范例 ( 长度 ) [ COMMENT 解释 ] [ 束缚 ]; 案例: 将 emp 表的salar 字段修改为 username ,范例为 varchar(30)
4.删除字段
ALTER TABLE 表名 DROP 字段名 ; 案例: 将 emp 表的字段 username 删除
5.修改表名
ALTER TABLE 表名 RENAME TO 新表名;
案例: 将 emp 表的表名修改为 employee
3.2.6.删除
1. 删除表
DROP TABLE [ IF EXISTS ] 表名;
可选项 IF EXISTS 代表,只有表名存在时才会删除该表,表名不存在,则不执行删除利用 ( 假如不加该参数项,删除一张不存在的表,执行将会报错) 。
2.删除表(删除数据-创建表结构)
删除指定表, 并重新创建表
TRUNCATE TABLE 表名;
注意:在删除表的时候,表中的全部数据也都会被删除。
四 . 数据范例
在学习DML之前,先学习干系的数据范例:数值范例,字符串范例,日期时间范例:
1)数值范例
2)字符串范例:
注:
1)char(10) --> 定长字符串,即使存储了1个字符,也会占用10个空间,未占用的则用空格补位
2)vachar(10) -->变长字符串,根据内容计算存储空间,括号表示当前字符串能够存储的最大长度。
3 )char 相对于 varchar 来说,性能较好,由于varchar需要根据内容去计算所需空间
3) 日期时间范例:
4)练习:
案例 计划一张志愿信息表,要求如下: 1. 编号(纯数字) 2. 员工工号 ( 字符串范例,长度不高出 10 位 ) 3. 员工姓名(字符串范例,长度不高出 10 位) 4. 性别(男 / 女,存储一个汉字) 5. 年龄(正常人年龄,不大概存储负数) 6. 身份证号(二代身份证号均为 18 位,身份证中有 X 这样的字符) 7. 入职时间(取值年月日即可)
- create table emp(
- id int comment '编号',
- workno varchar(10) comment '工号',
- name varchar(10) comment '姓名',
- gender char(1) comment '性别',
- age tinyint unsigned comment '年龄',
- idcard char(18) comment '身份证号',
- entrydate date comment '入职时间'
- ) comment '员工表';
复制代码
五 . DML
数据利用语言:用来对数据库中表的数据记载进行 增删改 利用
1)添加数据(INSERT)
2)删除数据(DELETE)
3) 修改数据(UPDATE)
5.1 添加数据:
1)指定字段添加数据:insert into 表名(字段名1,字段名2,......) values(值1,值2,...);
2) 给全部字段添加数据:insert into 表名 values(值1,值2,...);
3) 批量添加数据:insert into 表名(字段名1,字段名2) values(值1,值2,...),(值1,值2,...);
insert into 表名 values(值1,值2,...),(值1,值2,...);
注意:
- 插入数据时,指定的字段顺序需要与值的顺序是逐一对应的;
- 字符串 和 日期范例 数据应该包罗在引号中
- 插入的数据巨细,应该在字符串的规定范围内
案例1: 给employee表所有的字段添加数据 ;
可以通过图形化界面工具查看是否插入乐成:
也可以通过select 语句查看是否插入乐成:
案例: 给 employee 表所有的字段添加数据 ,执行如下SQL ,添加的年龄字段值为 -1 。 insert into employee(id,workno,name,gender,age,idcard,entrydate) values ( 1 , '1' , 'Itcast' , ' 男 ' ,- 1 , '123456789012345678' , '2000-01-01' );
由于 employee 表的age字段范例为 tinyint,而且照旧无符号的 unsigned ,以是取值只能在 0-255 之间。
5.2 修改数据:
update 表名 set 字段名1=值1,字段名2=值2 [where 条件];
注:修改语句的条件可以有,也可以没有,假如没有条件,则会修改整张表的所有数据。
1.修改id为1的数据,将name修改为 frist name
2.修改id为1的数据, 将name修改为小仙女, gender修改为 女
3.将所有的员工入职日期修改为 2008-01-01
5.3 删除数据:
delete from 表名 [where 条件]
注:DELETE语句的条件可以有,也可以没有,假如没有条件,则会删除整张表的所有数据。
DELETE语句不能删除某一个字段的值(可以使用UPDATE)
1.删除gender为女的员工
2.删除所有员工
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |