黑马程序员技术交流社区

标题: 【黑马程序员济南】小鲁哥哥白话笔记-SQL [打印本页]

作者: 小鲁哥哥    时间: 2017-8-9 22:44
标题: 【黑马程序员济南】小鲁哥哥白话笔记-SQL
本帖最后由 小鲁哥哥 于 2017-8-11 20:33 编辑

【黑马程序员济南】小鲁哥哥白话笔记-SQL

在学习MySql的时候,老师一直在强调数据库的重要性,的确,在我们以后的开发中,数据库操作是我们在开发中经常遇到的问题。当前学习的数据库操作还是比较简单的操作,因为仅仅只是单表的操作,在以后的课程中我们还会学习多表的操作。给大家简单的介绍一下当前学习的数据库知识。
其实数据库不管多难,有多复杂,总结起来就是四个字:增删改查。这四个字浓缩了数据库操作的所有精华。
在对数据库表进行更改操作前,我们先要去创建一个数据库:create database 数据库名 character set 字符集。完成了第一步后,第二步我们就要创建数据表:
create table 表名(
           字段名 类型(长度) 约束,
           字段名 类型(长度) 约束
        );
大家能看到在创建表的时候,给字段添加了约束,约束的作用就是限制每一列能写什么数据,不能写什么数据。其中特别要强调的就是主键约束,主键是用于标识当前记录的字段。它的特点是非空,唯一。它的表现形式如下:
create table tablename(   
        id int primary key,
        .......
        )
我们常用的对表的操作有哪些呢:我们课上给大家6种对于表的操作:
* A: 修改表添加列
        alter table 表名 add 列名 类型(长度) 约束;   
        例如:
        #1,为分类表添加一个新的字段为 分类描述 varchar(20)
        ALTER TABLE sort ADD sdesc VARCHAR(20);

    * B: 修改表修改列的类型长度及约束
        alter table 表名 modify 列名 类型(长度) 约束;
        例如:
        #2, 为分类表的分类名称字段进行修改,类型varchar(50) 添加约束 not null
        ALTER TABLE sort MODIFY sname VARCHAR(50) NOT NULL;

    * C: 修改表修改列名
        alter table 表名 change 旧列名 新列名 类型(长度) 约束;
        例如:
        #3, 为分类表的分类名称字段进行更换 更换为 snamesname varchar(30)
        ALTER TABLE sort CHANGE sname snamename VARCHAR(30);

    * D: 修改表删除列
        alter table 表名 drop 列名;   
        例如:
        #4, 删除分类表中snamename这列
        ALTER TABLE sort DROP snamename;

    * E: 修改表名
        rename table 表名 to 新表名;
        例如:
        #5, 为分类表sort 改名成 category
        RENAME TABLE sort TO category;

    * F: 修改表的字符集
        salter table 表名 character set 字符集;
        例如:
        #6, 为分类表 category 的编码表进行修改,修改成 gbk
        ALTER TABLE category CHARACTER SET gbk;
每一种大家都要熟记,因为不管数据库是哪一种,对于表的操作都是统一的,不会更改的。
最后给大家罗列一下数据库的增删改查的一些具体操作:
数据表添加数据_1
     * A: 语法:
        insert into 表 (列名1,列名2,列名3..) values  (值1,值2,值3..); -- 向表中插入某些列
   
     * 举例:
        INSERT INTO product (id,pname,price) VALUES (1,'笔记本',5555.99);
        INSERT INTO product (id,pname,price) VALUES (2,'智能手机',9999);
     * 注意:
        列表,表名问题
        对应问题,个数,数据类型
数据表添加数据_2
     * A: 添加数据格式,不考虑主键
        insert into 表名 (列名) values (值)
     * 举例:
        INSERT INTO product (pname,price) VALUE('洗衣机',800);
        
        
     * B: 添加数据格式,所有值全给出
        格式
        insert into 表名 values (值1,值2,值3..); --向表中插入所有列
        INSERT INOT product VALUES (4,'微波炉',300.25)
     * C: 添加数据格式,批量写入
        格式:
        insert into 表名 (列名1,列名2,列名3) values (值1,值2,值3),(值1,值2,值3)
     举例:
        INSERT INTO product (pname,price) VALUES
        ('智能机器人',25999.22),
        ('彩色电视',1250.36),
        ('沙发',58899.02)      
更新数据
    * A: 用来修改指定条件的数据,将满足条件的记录指定列修改为指定值
        语法:
        update 表名 set 字段名=值,字段名=值;
        update 表名 set 字段名=值,字段名=值 where 条件;
    * B: 注意:
            列名的类型与修改的值要一致.
            修改值得时候不能超过最大长度.
            值如果是字符串或者日期需要加’’.

    * C: 例如:
        #1,将指定的sname字段中的值 修改成 日用品
        UPDATE sort SET sname='日用品';
        #2, 将sid为s002的记录中的sname改成 日用品
        UPDATE sort SET sname='日用品' WHERE sid='s002';
        UPDATE sort SET sname='日用品' WHERE sid='s003';
删除数据
    l* A: 语法:
        delete from 表名 [where 条件];
        或者
        truncate table 表名;

     * B: 面试题:
        删除表中所有记录使用delete from 表名; 还是用truncate table 表名;
        删除方式:delete 一条一条删除,不清空auto_increment记录数。
        truncate 直接将表删除,重新建表,auto_increment将置为零,从新开始。

     * C: 例如:
        DELETE FROM sort WHERE sname='日用品';
        #表数据清空
        DELETE FROM sort;


作者: Port    时间: 2017-8-10 09:47
写的很简单,很容弄懂SQL语句的增删改查
作者: 小东姐姐    时间: 2017-8-10 16:58
感谢分享!{:8_488:}
作者: jingxian90    时间: 2017-8-17 09:22
条理清晰,通俗易懂,简明扼要




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2