MYSQL笔记加练习(DML部分-看这一个就行了)


    
#DML 语言:
/*数据操作语言:
    插入 insert
    修改 update
    删除 delete
    
(1)插入语句
语法:insert into 表名(列名,……) value(值1,……)
    注意:
    (1)插入的值的类型要与列的类型一致或兼容,字段列数与值列数必须一致
    (2)不可以为null的列 必须插入值,可以为null的列,如何插入值?
        1)赋值为null
        2)字段去掉不写
    (3)列的顺序可以与原表不同
    (4)可以省略列名,此时默认为所有列,且列的顺序和表中所有列的顺序一致,需要注意值的顺序和个数
*/

#删除没有男朋友的女生
DELETE 
FROM `beauty`
WHERE `boyfriend_id` = 8;
/*
    truncate 和delete的区别
    (1)只能删除全部表--可以删除指定行
    (2)前者效率更高
    (3)假如要删除的表有自增长列,再插入数据,自增长列值delete从断点处开始,而truncate从1开始
    (4)truncate删除没有返回值,delete删除有返回值---共xx行受到影响
    (5)truncate删除不能回滚,delete可以回滚
    
*/

#DDL 语言
/*
    数据定义语言
    一、库的管理
        创建、修改、删除
    二、表的管理
        创建、修改、删除
    创建:create
    修改:alter
    删除:drop
    
    1、库的创建
        creat database (if not exists)库名
    2、库的修改
        更改库的字符集
        alter database books character set bgk
    3、库的删除
        drop database books
*/

 



#DML语言 #
1、插入 insert /* (1)方式1 insert int 表名(列名。。。) value(值。。。)(值。。。) (2)方式2 insert int 表名(列名) value 列名=值。。。 比较: (1)方式1支持子查询,方式2不支持 (2)方式1支持插入多行,方式2不支持 */ INSERT INTO `departments`(`department_id`,`department_name`) VALUE(13,'liu'); #使用子查询 INSERT INTO `departments`(`department_id`,`department_name`) SELECT 14,'77'; #2、修改 /* (1)修改单表的记录** 语法:update 表名 set 列 = 新值,列 = 新值 where 筛选条件 (2)修改多表的记录 92语法:update 表名 set 列 = 新值,列 = 新值 where 连接条件 and 筛选条件 99语法:update 表1 别名 inner/left|right join 表2 别名 on 连接条件 #先连接,再修改 set 列 = 值 where 筛选 */ #修改张的手机号为666,要连接女朋友表 UPDATE `boys` bo INNER JOIN `beauty` be ON bo.`id` = be.`boyfriend_id` SET be.``beauty`phone` = "666" WHERE bo.`boyName` = "张无忌"; #3、删除 #注意:删除整行 #方式1:delete /* (1)单表删除** delete from 表名 where 筛选条件 (2)多表的删除 sql 92: delete 表1的别名 //删除那个就写那个表的别名 from 表1 别名,表2 别名 where 连接条件 and 筛选条件 sql 99: delete 表1的别名 from 表1 别名 inner/left /right/ join 表2 别名 on 连接条件 where 筛选条件 方式2:truncate 语法:truncate table 表名; ---删除表中全部内容 */

#DML语言--总结:表行的操作:insert into(插/增)、update(改)、delete from(删) 表名,表行的操作不加table关键字
/*
(1)插入
    插入表行---(新增一行) INSERT INTO ... VALUES
        方式1(新增一列或多列):
            insert into 表名(列名……)
            values(列值)
        方式2(新增一列):
            insert into 表名
            set 列名 = 值
    修改表值---(更改某行指定列的数据)UPDATE ... SET
        方式1(更改单表的某一行的某列)
            update 表名
            set 列 = 新值,列 = 新值
            where 筛选条件;
        方式2(修改多表的记录【补充】)
            语法:
            sql92
            update 表1 别名,表2 别名
            set 列 = 值
            where 连接条件
            and 筛选条件
            
            sql99
            update 表1 别名
            inner join 表2 别名
            on 连接条件
            set 列 = 值
            where  筛选条件
            
    删除表行---删除行 DELETE FROM
        方式1 delete
            单表的删除
                delete from 表名 筛选信息
        方式二 truncate
*/

#DDL语言--总结:表的操作:CREATE(增)、ALTER(改)、delete from(删) 注意table关键字
#即 alter table 表名 关键字 column 
/*
(1)新增表
    create table 表名(
        列名 数值类型(长度)
        列名 数值类型(长度)
        );
(2)修改表 --- 修改表列名、列类型、新增列、删除列、修改表名
    
    修改列名---顺带修改值类型
        alter table 表名 change column旧列名 新列名 新的值类型
        
    修改列类型或约束---  #只能修改为同一类型的其他值
        alter table 表名 modify column 列名 新列类型
            
    添加新列---add
        alter table 表名 add column 新列名 列类型
        
    删除列---drop
        alter table 表名 drop column 列名
        
    修改表名---drop
        alter table 表名 rename to 新表名
(3)表的删除
drop table 表名

(4)表的复制
    方式1:只复制表的结构
        create table 新表 like 旧表
    方式2:复制表的结构和内容
        create table 新表 select * from 旧表
*/


# 练习:为`myemployees`增加表`my_employees`.练习表中数据的增加、删、改
    #(1)创建表
    CREATE TABLE `my_employees`(
        id INT(10),
        First_name VARCHAR(10),
        USER_id INT(10),
        salary DOUBLE(10,2)
    );
    
    #(2)增加表中数据
    INSERT INTO `myemployees`.`my_employees`(`id`,`First_name`,`salary`)
    VALUES(13,'zhang',-8000),(14,'zhang',-8000),(15,'li',8000);
    
    #(3)修改表中数据(id=13的人的姓名)
    UPDATE `myemployees`.`my_employees`
    SET `First_name` = 'ZHAO'
    WHERE id = 13;
    
    #(4)删除表中数据(行)
    DELETE FROM `myemployees`.`my_employees`
    WHERE id = 13;
    
# 继续练习表的操作
    #(5)创建新表
        CREATE TABLE `my_employees2`(
        id INT(10),
        First_name VARCHAR(10),
        USER_id INT(10),
        salary DOUBLE(10,2)
    );
    
    #(6)修改表列
        # 改列名
        ALTER TABLE `myemployees`.`my_employees` CHANGE COLUMN id0 id2 INT;
        # 改列属性
        ALTER TABLE `myemployees`.`my_employees` MODIFY COLUMN id2 BIGINT; #已有值的表操作列值会报错
        ALTER TABLE `myemployees`.`my_employees2` MODIFY COLUMN id BIGINT;
        # 添加新列    
        ALTER TABLE `myemployees`.`my_employees2` ADD COLUMN id2 BIGINT;    
    
    #(7)删除表列
        ALTER TABLE `myemployees`.`my_employees` DROP COLUMN salary;
    
    # (8)表的重命名
        ALTER TABLE `myemployees`.`my_employees` RENAME TO newemployee;
        
    # (9)表的复制
        CREATE TABLE copy_employee LIKE `myemployees`.`my_employees2`;
        CREATE TABLE copy_employee2 SELECT * FROM `myemployees`.`my_employees2`;
        
    # (10)表的删除
        DROP TABLE `myemployees`.copy_employee2;

 

 

posted @ 2021-08-10 01:02  低手寂寞  阅读(78)  评论(0)    收藏  举报