道家人 发表于 2025-1-6 10:54:21

SQL-【DDL+DML】

一 . 通用语法 :

   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();
https://i-blog.csdnimg.cn/direct/4cadbd11136a41c6b54dfa4cca3214b3.png

2) 创建
create database 数据库名 ;
https://i-blog.csdnimg.cn/direct/75e59ab7f7f7452f8a19c43b73a8b863.png
https://i-blog.csdnimg.cn/direct/1e28c8d1487b4bd2800616430b1ff8f0.png
在同一个数据库服务器中,不能创建两个名称相同的数据库,否则将会报错。 
https://i-blog.csdnimg.cn/direct/08652cf6f45947e7bca5b153b718a0b7.png
 注:这里我们可以使用键盘的上下键来拿到之前写过的下令行 , 发起对语法有富足熟悉才使用,把根本打踏实为先!

   可以通过if not exists 参数来解决这个标题,数据库不存在, 则创建该数据库,假如存在,则不     创建。https://i-blog.csdnimg.cn/direct/17a689a08b6547fa8c353aa6d97d31b9.png
创建数据库,而且指定字符集 (default charset utf8mb4)
https://i-blog.csdnimg.cn/direct/eacb822058254b368cb826c23145445c.png

3)删除
drop database 数据库名;

   假如删除一个不存在的数据库,将会报错。此时,可以加上参数 if exists ,假如数据库存在,再     执行删除,否则不执行删除。    https://i-blog.csdnimg.cn/direct/199d7aad8bef40d5a31b34b635446cb8.png

4)使用
use 数据库名;
   我们要利用某一个数据库下的表时,就需要通过该指令,切换到对应的数据库下,否则是不能利用的。
https://i-blog.csdnimg.cn/direct/0dd2ad24fe4e4b729771015741ac8a89.png
https://i-blog.csdnimg.cn/direct/8d46cd0dca4740019c948be948c89836.png
3.2 表利用 

3.2.1 查询当前数据库所有表

   show tables;   我们可以切换到sys这个系统数据库,并查看系统数据库中的所有表结构    https://i-blog.csdnimg.cn/direct/d0c2554293714bceb696e4fb3d5c65d1.png

3.2.2 创建表结构

         CREATE TABLE   表名    (                         字段    1   字段    1    范例   [ COMMENT   字段    1    解释   ],                         字段    2   字段    2    范例   ,                         字段    3   字段    3    范例   ,         ......                         字段    n   字段    n    范例            ) [ COMMENT   表解释   ] ;          注意:注意: [...] 内为可选参数,末了一个字段后面没有逗号        创建一下表的结构:
idnameagegender1张三28男2李四18男3王五33男 https://i-blog.csdnimg.cn/direct/374bfc8f92fc4d16af0b91223ded6228.png
3.2.3 查看指定表结构 

desc 表名 ;
      通过这条指令,我们可以查看到指定表的字段,字段的范例、是否可以为NULL,是否存在默认值等信息。    https://i-blog.csdnimg.cn/direct/0f4613a7097a470b9aef80363812f0e8.png
 3.2.4 查询指定表的建表语句

   show create table 表名 ;      通过这条指令,重要是用来查看建表语句的,而有部门参数我们在创建表的时候,并未指定也会查询到,由于这部门是数据库的默认值,如:存储引擎、字符集等。    https://i-blog.csdnimg.cn/direct/19b24bbfbe934637ae1680c939207845.png
3.2.5 修改 

   1.添加字段:
ALTER TABLE 表名 ADD 字段名 范例 (长度) [ COMMENT 解释 ] [ 束缚 ];

   案例:这里可以先跳到第四点的数据范例,查看后,把emp表创建了,再进行如下利用       为   emp   表增长一个新的字段   ”工资   ”   为salar   ,范例为int    https://i-blog.csdnimg.cn/direct/abc373318e564ef2855665bf43afdf09.png
   2. 修改数据范例
   ALTER TABLE    表名    MODIFY    字段名 新数据范例    (   长度   );         3.修改字段名和字段范例       ALTER TABLE    表名   CHANGE    旧字段名 新字段名 范例    (   长度   ) [ COMMENT    解释    ] [    束缚    ];         案例:           将    emp    表的salar    字段修改为    username    ,范例为    varchar(30)       https://i-blog.csdnimg.cn/direct/c11a339207e84c6c9e8ab6c85864cf1e.png
   4.删除字段 
   ALTER TABLE    表名    DROP    字段名   ;         案例:           将    emp    表的字段    username    删除       https://i-blog.csdnimg.cn/direct/b40c1e089aba47eeb2f28e16cdcfc6a5.png
    5.修改表名
ALTER TABLE 表名 RENAME TO 新表名;

   案例:        将   emp   表的表名修改为    employee    https://i-blog.csdnimg.cn/direct/cf5a6b7086ef4c4fb87003a522bade6a.png
3.2.6.删除

   1. 删除表
DROP TABLE [ IF EXISTS ] 表名;

   可选项    IF EXISTS    代表,只有表名存在时才会删除该表,表名不存在,则不执行删除利用   (   假如不加该参数项,删除一张不存在的表,执行将会报错)   。    https://i-blog.csdnimg.cn/direct/e4f95d2d8d664c019cf6d90af7ee51f9.png
   2.删除表(删除数据-创建表结构)
删除指定表, 并重新创建表 
TRUNCATE TABLE 表名;
注意:在删除表的时候,表中的全部数据也都会被删除。 
https://i-blog.csdnimg.cn/direct/edb15dc320d844428d6f5a74c586fc0d.png
四 . 数据范例

    在学习DML之前,先学习干系的数据范例:数值范例,字符串范例,日期时间范例:
1)数值范例
https://i-blog.csdnimg.cn/direct/792a9f3a9cbd46e292bc65680583059c.jpeg
https://i-blog.csdnimg.cn/direct/bc18e6d08d774e6196bc73a10f790cf1.png
https://i-blog.csdnimg.cn/direct/032fed0f16d24e6ca433b924113e9c81.png
 
2)字符串范例: 
https://i-blog.csdnimg.cn/direct/faed3d902ebf4a3095727830311d4ef1.jpeg
https://i-blog.csdnimg.cn/direct/435feeccd527452cb44ae8f01d8c577c.png
   注:
1)char(10)      --> 定长字符串,即使存储了1个字符,也会占用10个空间,未占用的则用空格补位
2)vachar(10)  -->变长字符串,根据内容计算存储空间,括号表示当前字符串能够存储的最大长度。
3 )char 相对于 varchar 来说,性能较好,由于varchar需要根据内容去计算所需空间
3) 日期时间范例:
https://i-blog.csdnimg.cn/direct/2cde71bfc0ad4ffc8f6d55ee5420b6eb.png
https://i-blog.csdnimg.cn/direct/817ce89b0ada42eb8925335b9260fdff.png
 4)练习:
      案例        计划一张志愿信息表,要求如下:      1.    编号(纯数字)      2.    员工工号    (   字符串范例,长度不高出   10   位   )      3.    员工姓名(字符串范例,长度不高出   10   位)      4.    性别(男   /   女,存储一个汉字)      5.    年龄(正常人年龄,不大概存储负数)      6.    身份证号(二代身份证号均为   18   位,身份证中有   X   这样的字符)      7.    入职时间(取值年月日即可)    https://i-blog.csdnimg.cn/direct/c9e71fa3d376409194876e6f1fdaaa45.png
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 '员工表'; https://i-blog.csdnimg.cn/direct/a5a21dc7c5424bca86d4ecdb3a5e91e1.png
 
五 . DML

   数据利用语言:用来对数据库中表的数据记载进行  增删改  利用 
1)添加数据(INSERT)
2)删除数据(DELETE)
3)  修改数据(UPDATE)
5.1  添加数据: 

1)指定字段添加数据:insert into 表名(字段名1,字段名2,......) values(值1,值2,...);
2)  给全部字段添加数据:insert into 表名 values(值1,值2,...);
https://i-blog.csdnimg.cn/direct/f77dc04df48a4f529ec151551764afd5.png
3)  批量添加数据:insert into 表名(字段名1,字段名2) values(值1,值2,...),(值1,值2,...);
                              insert into 表名 values(值1,值2,...),(值1,值2,...);
https://i-blog.csdnimg.cn/direct/81209412d6274e46ad095843f81f37b5.png
   注意:


[*]插入数据时,指定的字段顺序需要与值的顺序是逐一对应的;
[*]字符串   和  日期范例  数据应该包罗在引号中
[*]插入的数据巨细,应该在字符串的规定范围内
     案例1: 给employee表所有的字段添加数据 ;
https://i-blog.csdnimg.cn/direct/ac685f2221ae4ebc8729ee89857e8d93.png
可以通过图形化界面工具查看是否插入乐成: 
https://i-blog.csdnimg.cn/direct/403fb8a5076b4c81b3888e69855544f9.png
也可以通过select 语句查看是否插入乐成: 
https://i-blog.csdnimg.cn/direct/3552531570cf41f2b365c446f1f6a3ed.png 
      案例:    给   employee   表所有的字段添加数据 ,执行如下SQL   ,添加的年龄字段值为   -1   。      insert into   employee(id,workno,name,gender,age,idcard,entrydate)   values(1,'1','Itcast','男',-1,'123456789012345678','2000-01-01');    https://i-blog.csdnimg.cn/direct/6b10b23612994fdc8ebe7febb0347156.png
https://i-blog.csdnimg.cn/direct/c6c104ebcda04407956fc9d8e9f130f8.png
   由于 employee 表的age字段范例为 tinyint,而且照旧无符号的 unsigned ,以是取值只能在        0-255 之间。     
https://i-blog.csdnimg.cn/direct/1b7936dba56d4b06933ee4cede95c7d4.png
 
5.2 修改数据:

update 表名 set 字段名1=值1,字段名2=值2 ;
注:修改语句的条件可以有,也可以没有,假如没有条件,则会修改整张表的所有数据。

1.修改id为1的数据,将name修改为 frist name
https://i-blog.csdnimg.cn/direct/822b21056f974f3e980a4e8ca8101e1b.png
2.修改id为1的数据, 将name修改为小仙女, gender修改为 女
https://i-blog.csdnimg.cn/direct/24c5ecf6365c40e8b2a3699f66fcbdf9.png
3.将所有的员工入职日期修改为 2008-01-01 
https://i-blog.csdnimg.cn/direct/b9be631abbf641049fbc8769ce0a8b0a.png
5.3 删除数据:

delete from 表名
注:DELETE语句的条件可以有,也可以没有,假如没有条件,则会删除整张表的所有数据。
       DELETE语句不能删除某一个字段的值(可以使用UPDATE)
1.删除gender为女的员工
https://i-blog.csdnimg.cn/direct/f516ec797d144983ada1ff59770bb119.png
2.删除所有员工
https://i-blog.csdnimg.cn/direct/43344cc56f37450084c780e5584dd747.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: SQL-【DDL+DML】