数据库SQL入门数据结构学习指南

sql语句学习总结

2015-05-21  本文已影响1972人  一介文夫

先总结

sql语句按W3Cschool上分类有数据库操作语言和数据库定义语言两个部分组成,根据那那种分法可以让我们更好的理解SQL,另外自己在网上找到一张图片,可以让我更好的写出SQL语句。在后期的学习中在一一在每条SQL语句下补上学习心得。

mysql执行顺序.png
               mysql执行顺序

SQL包括两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。

DML部分:
DDL重要部分:

数据库

基础用法

1.select语句:从表中选取数据,结果放在一个结果表中
       SELECT 列名称 FROM 表名称

2.select distinct:从表中选出唯一的值
       SELECT DISTINCT 列名称 FROM 表名称

3.where 子句:有条件的从表中选择数据
       SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
       其中操作符between表示两者之间,like表示按某种搜索模式

4.and & or:基于一个以上的条件对记录进行过滤,用于where子句中

5.order by:用于根据指定的列(可以多列)对数据结果集进行排序;倒序DESC,ASC
      正序。

6.insert into:向表中插入新的行
       INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

7.update:修改表中的数据
      UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

8.delete:删除表中的行
      DELETE FROM 表名称 WHERE 列名称 = 值

9.limit:规定要返回记录的数目
    SELECT * FROM TABLE_NAME LIMIT NUM


where子句的各种操作

10.like:在where的子句中搜索列的指定模式
    用好通配符:
        %:替代一个或多个字符
        -:替代一个字符
         [ ABC]:ABC中的任何一个
         [!ABC]:不包括ABC任何一个
11.in:规定where子句中规定多个值

12.between and:where子句中选取介于两个值之间的范围(mysql包括两端

13.alias:为列名称和表名称建立别号
    表的alias语法:select column_name from table_name as alias_name 
   列的alias语法:select column_name as alias_name from table_name


join操作

14.join:用于根据两个或多个表中的列之间的关系,从这些表中查询数据

15.inner join:内连接,在表中存在至少存在一个匹配时,该关键字返回行
       SELECT column_name(s) 
       FROM table_name1
       INNER JOIN table_name2
       ON table_name1.column_name=table_name2.column_name

16.left join:左链接,此关键字会从左表(table_name1)中返回所有行,即        使在有右表(table_name2)中没有匹配
      SELECT column_name(s)
      FROM table_name1
      LEFT JOIN table_name2
      ON table_name1.column_name=table_name2.column_name

17.right join:右链接,此关键字会在右表(table_name2)返回所有行,即使在左表
      (table_name1)中没有匹配的行

18.full join:只要其中某个表存在匹配,此关键字就会返回左右表均有的行

多表操作

19.union:用于合并两个或者多个select语句,使用“union all”可以包括重复的值

20.select into:从一个表中选取数据插入另一个表,主要用于备份数据        SELECT */column_name
        INTO new_table_name [ in externaldatabase]
        FROM table_name1
        INNER JOIN table_name2
       ON Person.Id_P = Orders.Id_P

21.CREATE DATABASE database_name:创建数据库

22.CREATE TABLE table_name(
      列名称1,列类型
      列名称2,列类型
      列名称3,列类型
)


sql数据类型.PNG

SQL约束

约束:用于显示加入表中列的数据类型,可在建表时(CREATE TABLE)或者建表后(ALTER TABLE)

23.NOT NULL:强制不接受NULL值,如果不包括值时就不能插入

24.UNIQUE:唯一标识数据库中的每条记录。

25.PRIMARY KEY:用法与上面一样,但还是KEY每个表只有一个,而unique可以有多个

26.FOREIGN KEY:指向另一个表中的PRIMARY KEY

27.CHECK:用于限制列中值的范围

28.DEFAULT:用于向列中插入默认值

引用

CREATE INDEX用于在表中创建索引,在不读取表的情况下,索引使数据库应用程序可以更快的查找数据

29.CREATE INDEX 语法

30.DROP语法
ALTER TABLE table_name DROP INDEX index_name
TRUNCATE TABLE 表名称——清空表

31.ALTER TABLE:用于在已有的表中添加、修改或者删除列

32.AUTO-INCREMENT:自动创建主键值

33.CREATE VIEW:创建视图

34.mysql的Date数据类型

mysql的date函数.PNG

35.NULL值是可选字段,必须用IS NULL 和IS NOT NULL 操作符

SQL函数

    SELECT function(列) FORM 表

基本类型

唯一性索引:该数据列可以为空,但是只要有数据就必须保证此列取值的唯一性

数据类型:decimal 和 numeric(相同的类型)类型用于保存必须为确切精度的值,如货币数据,最大位数为65位。decimal(5,2):5位,小数点后2位

SQL模式:严格和不严格
查看模式:select @@sql_mode;
设置模式:set global sql_mode= '';

char和varchar区别:比较时var去掉空格,varchar不去掉空格;

找出非法ENUM列:
select * from tab_name where enum_col=0;

上一篇 下一篇

猜你喜欢

热点阅读