一.  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);

sql server 上月1号_sql server 上月1号

 

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

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

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

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