第一天SQL总结

1 篇文章 0 订阅
1 篇文章 0 订阅

一.  SQL 知识点

  1. 什么是SQL?           结构化查询语言(Structureed Query Language)简称SQL
  2. SQL语句分类 DDL, DML ,DQL, DCL表示的含义

    答:  · DDL (Data Definition 美 [,dɛfɪ'nɪʃən]  Language) : 数据定义语言

           · DML (Data Manipulation  [mə,nɪpjʊ'leʃən]   Language) : 数据操作语言

           · DQL (Data Query  美 ['kwɪri] Language) : 数据查询语言

           · DCL (Data Control Language) : 数据控制语言

 

二.  SQL 基本操作

  1. DDL(数据定义语言)

 

          注意  -- 数据库名命名规则:

          - 第一个字符必须为下列之一:字母、下划线、#@符号。

          - 后续字符由字母、十进制数、下划线、#$@符号组成。

          - 不能为RDBMS(数据库管理系统)保留关键字

          - 不允许空格及其他字符。

 

          A.DDL(数据定义语言)操作数据库:

                    ① 创建数据库(增)

                        a. 不判断是否存在创建 : CREATE DATABASE 数据库名;

                               例如 :

                                       CREATE DATABASE db1;

                        b. 判断是否存在创建 : CREATE DATABASE IF NOT EXISTS 数据库名;

                               例如 :

                                        CREATE DATABASE IF NOT EXISTS db2;

                        c. 设置字符创建数据库 : CREATE DATABASE 数据库名 CHARACTER SET 字符集;

                                例如 :

                                        CREATE DATABASE db2 CHARACTER SET gbk;

                     ② 查看数据库(查) :

                         a. 查看所有数据库 : SHOW databases;

                         b. 查看创建数据库的定义信息:SHOW CREATE DATABASE 数据库名;

                                例如 :

                                         SHOW CREATE DATABASE db2;

                      ③ 修改数据库(改) :

                         a. 修改数据库字符集的格式 : ALTER DATABASE 数据库名 CHARACTER SET 字符集;

                         b. 代码实现修改数据库字符集的格式 : ALTER DATABASE db3 DEFAULT CHARACTER SET utf8;

                      ④ 删除数据库(删) :

                          a. 删除数据库格式 : DROP DATABASE 数据库名;

                          b. 代码实现删除数据库 : DROP DATABASE db2;

                     ⑤ 使用数据库 (使用) :

                          a. 查看正在使用的数据库 : SELECT DATABASE() ;

                          b. 使用/切换数据库 : USE 数据库名 ;

                               例如 :

                                        USE db1 ;

            B.DDL操作表 :

                     ① 创建表 :

                          a. 创建表的格式 :

                                CREATE TABLE 表名 (

                                       字段名1 字段类型1,

                                        字段名2 字段类型2

                                 );

                            b. 在创建表之前先列出几种常用的数据类型 :

                               Ⅰ. 整数数据类形

                                     -- INT           大小 : 4字节

                                     -- BIGINT     大小 : 8字节  

                               Ⅱ. 浮点类数据类型

                                     -- FLOAT      大小 : 4字节  精度 : 7位小数

                                     -- DOUBLE   大小 : 8字节  精度 : 15位小数   

                               Ⅲ. 字符串数据类型 

                                     -- VARCHAR  范围:0-65535

                               Ⅳ. 日期类数据类型 :

                                     -- DATE (只有年日月,没有时分秒)   大小 : 3字节  格式 : YYYY

                                     -- DATETIME                                   大小 : 8字节  格式 : YYYY-MM-DD

                            例如 : 创建t_student表包含id,name,birthday字段:

                                 CREATE TABLE t_student (

                                    id INT,

                                    name VARCHAR(20),

                                    birthday DATE

                                    );

                            c. 复制表:

CREATE TABLE copy_student SELECT * FROM t_student; 

如此我们便复制了一张名为copy_student的表,它包括t_student表中的内容与结构。注意:复制表的同时表的约束并不能复制过来。

 

                                 只复制表结构而不复制表内容:

CREATE TABLE copy_student SELECT * FROM t_student WHERE 1=0; 

                              只需在WHERE条件中加入一个永不为真的值即可。

                        ② 查看表:

                              a. 查看某个数据库中的所有表 : SHOW TABLES ;

                              b. 查看表结构 : DESC 表名 ;

                              c. 查看创建表的SQL语句 : SHOW CREATE TABLE 表名;

                          ③ 删除表:

                               a. 直接删除表:DROP TABLE 表名;

                               b. 判断表是否存在并删除表:DROP TABLE IF EXISTS 表名 ;

                          ④ 修改表:

                               a. 添加表列:ALTER TABLE 表名 ADD 列名 类型;

                                   例如 :

                                      ALTER TABLE student ADD remark VARCHAR(20);

                               b. 修改列类型:ALTER TABLE 表名 MODIFY列名 新的类型;

                                   例如 :

                                      ALTER TABLE student MODIFY remark VARCHAR(100);

                               c. 修改列名:ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;

                                      例如 :

                                           ALTER TABLE student CHANGE remark intro varchar(30);

                               d. 删除列:ALTER TABLE 表名 DROP 列名;

                                      例如 :

                                                ALTER TABLE student DROP intro;

                               e. 修改表名:RENAME TABLE 表名 TO 新表名;

                                      例如 :

                                                RENAME TABLE student TO student2;

                               f. 修改字符集:ALTER TABLE 表名 character set 字符集;

                                       例如 :

                                                ALTER TABLE student2 character set gbk;

 

三.数据库完整性

 

保证数据库的完整性是为了防止垃圾数据的产生,以免影响数据库的执行效率。这里简单说一些,因为毕竟不是理论类的文章,能力也有限,这里主要是整理汇总SQL语句。

分类:

           1.实体完整性

         保证一行数据是有效的

           2.域完整性

         保证一列数据是有效的

           3.引用完整性

         保证引用的编号是有效的

           4.用户自定义完整性

         保证自定义规则

 

实体完整性--主键约束:

PRIMARY KEY

主键列不能为空不能重复,通常加在表的id列中。

例如:

CREATE TABLE t_student(
            student_id INT PRIMARY KEY,
            student_name VARCHAR(10),
            student_birthday DATETIME,
            student_phone INT,
            student_score FLOAT);

 

实体完整性--唯一约束:

UNIQUE

唯一约束是指给定列的值必须唯一,与主键约束不同的是它可以为空。通常加在表中不能重复的信息中,如电话号码。

例如:

CREATE TABLE t_student(
            student_id INT PRIMARY KEY,
            student_name VARCHAR(10),
            student_birthday DATETIME,
            student_phone INT UNIQUE,
            student_score FLOAT);

 

域完整性--非空约束:

NOT NULL

非空约束可以加在诸如姓名等列上。

例如:

CREATE TABLE t_student(
            student_id INT PRIMARY KEY,
            student_name VARCHAR(10) NOT NULL,
            student_birthday DATETIME,
            student_phone INT UNIQUE,
            student_score FLOAT);

 

域完整性--默认约束:

设定默认值后,可以在添加此列时不指定值,数据库会自动填充设定的默认值。

DEFAULT

例如 : 现给学生表加入性别列,默认值设为“男”,这样添加新的学生信息时如果没有填写具体的性别均会默认为男性:

 

CREATE TABLE t_student(
            student_id INT PRIMARY KEY,
            student_name VARCHAR(10) NOT NULL,
            student_sex VARCHAR(5) DEFAULT '男',
            student_birthday DATETIME,
            student_phone INT UNIQUE,
            student_score FLOAT);

 

引用完整性--外键约束:

外键约束是指在外键关联主键上强制加上一个约束,如果违反该约束,则不允许该条数据的修改。

例如 : 创建主表--班级表:

CREATE TABLE t_class(
              class_id INT PRIMARY KEY,
              class_name VARCHAR(20) UNIQUE NOT NULL);
            )

创建从表--学生表,并设置外键约束:

CREATE TABLE t_student(
            student_id INT PRIMARY KEY,
            s_c_id INT REFERENCES t_class(class_id),
            student_name VARCHAR(10) NOT NULL,
            student_sex VARCHAR(5) DEFAULT '男',
            student_birthday DATETIME,
            student_phone INT UNIQUE,
            student_score FLOAT
            CONSTRAINT FOREIGN KEY(s_c_id) REFERENCES t_class(class_id); 

 

红色标识的就是创建外键约束的方法,个人认为也是SQL语句中最难记的。

SQL 要写起来发现东西真的多 , 自己能力也有限 , 一些东西还在总结 . 工作一忙 , 自己下班不想动 . 不能偷懒啦 ! 后面需要做的是 数据查询 ,表连接查询 还有些误区的总结 ,

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值