SQL必知必会

一.数据库/数据表
数据库(DATABASE):存款和储蓄有协会的数据的器皿;
数据库管理种类(DBMS):数据库软件.开发者通过 DBMS 操纵 DATABASE
表(TABLE):表是1种结构化的公文,用来囤积特定类型的数据.注意表中的数目是一定项目,不能够将消费者清单与订单清单存放于同三个表中;同壹数据库中表名唯一;
列(COLUMN):表的3个字段,全数表都由COLUMN构成;每一个列都有照应的数码类型.
行(ROW):表中的多寡是按行存款和储蓄,各种记录存款和储蓄在团结的行内,也能够称为数据库记录(RECO昂科拉D);
主键(P中华VIMAHummerH二Y
KEY):表的多个字段(即1列),用来唯一标识表中的每壹行;主键不可或缺;
             充当主键的条件:
                 一.即兴两行无法享有同等的主键值;
                 2.每壹行都不可能不拥有八个主键值(且不能够为NULL);
                 三.主键列中的值不容许修改或更新
                
肆.主键值无法重用(要是某行从表中删除,它的主键无法给予现在的新行);   
            
补充:能够选择多列作为主键,使用多列时,上述条件必须利用到独具列,全体列值的组成必须唯①(单个列的值能够不唯1);
外键:

二.SQL语句依照职能不一,分为四类:
DDL:(DATA DEFINATION
LANGUAGE),SQL语句中承担定义数据结构与数据库对象的言语,关键字有CREATE,ALTEKoleos,DROP;
DCL:数据库控制语言,用来设置大概变更数据库用户依旧角色权限的言辞;
DML:(DATA MANIPULATION
LANGUAGE)数据操纵语言,完成对数据库的基本操作,如对表中数量的插入/删除和改动;
DQL:(DATA QUELANDY LANGUAGE)数据查询语言,关键字SELECT;

3.常用命令:
     CREATE DATABASE 库名    :创制数据库
     SHOW CREATE DATABASE 库名 :查看所开创库的音讯
     SHOW DATABASES    :突显全部数据库;
     USE 数据库名    :进入钦定数据库;
     SELECT DATABASE():    查看正接纳的数据库;
     DROP DATABASE 库名    :删除数据库;

    SHOW TABLES:查询当前数据库下全部数据表;
     DESC 表名:查看钦命数据表的表结构;
     DROP TABLE 表名:删除表
     注释:–注释之后的剧情
         #:这一行是注释
         /* */:多行注释

 

4.创办数据库/创立数据表
一.开立数据库
     CREATE DATABASE 数据库名;
     CREATE DATABASE 数据库名 CHACRUISERSET
UTF8;成立钦点编码的数据库,注意UTF8之间从未-

一.创办表语句:
     CREATE TABLE 表名
         (
             列中的名字和概念,用逗号阻隔
         );
     举例:
         CREATE TABLE products
         (
             prod_id        CHAR(10)     NOT NULL,
             vend_id     CHAR(10)    NOT NULL,
             prod_name    CHAR(10)     NOT NULL,
             prod_price    CHAR(8,2)    NOT NULL,
         );
     注意:NULL是指未有值,””(空字符串)是有效值;
②.钦赐默许值:DEFAULT
     举例:
         CREATE TABLE orderItems
         (
             order_num    INTEGER        NOT NULL,
             orer_item    INTEGER        NOT NULL,
             quantity    INTEGER        NOT NULL     DEFAULT 1,
         );
        
对于quantity列,假如不交付,则默许为一;暗中同意值平时用来日期或时刻戳列.
     补充:DEFAULT比NULL更为常用,对于总结或分组的列更是如此;
3.履行SQL脚本创制表并插入数据的步调:直接粘贴到sqlyog大概workbench中执行…..

4.约束:NULL     PRIMARY KEY     UNIQUE      DEFAULT

五.查询
     1.SELECT     列名     FROM     表名:   
从一个表中再次来到须求寻找的列-检索单列;
     2.SELECT 列一, 列二, 列叁    FROM    表名:   
从3个表中重临要求摸索的多列消息-检索多列;
     3.SELECT *    FROM    表名 :使用通配符再次来到表中有所列
     肆.SELECT DISTINCT 列名     FROM    
表名:重临该列中不一样的值(相同的只显示二个);
     5.SELECT DISTINCT    列1,列二 FROM    
表名:假诺两行中列1,列二都1律,则只展现八个
     陆.SELECT 列名 FROM 表名 LIMIT 伍:从表中再次回到该列的前五行数据(MYSQL);
     陆.SELECT 列名 FROM 表名 WHERE ROWNUM <=
五:从表中重返该列的前五行数据(ORACLE)
     七.SELECT 列中 FROM 表名    LIMIT 二 OFFSET
1:从第贰行起(不带有第一行)展现2行(MYSQL);
         可简写为 LIMIT 壹,二;
     捌.OEvoqueDEPRADO BY 列1,列二:依据先按列一,再按列2的自然顺序排充(O奥迪Q5DER
BY子句应在WHERE子句之后)
     玖.OXC90DE大切诺基 BY     列1DESC:遵照列一的降序排(DESC语句仅对其日前的列有效,多列排序需在每一个列后加DESC关键字);
     十.WHERE :创造规则过滤数据(不可能再次来到NULL值),如 SELECT cust_id,
cust_name FROM customers where cust_age>=20,
选拔年龄在20岁以上的消费者ID和人名
         WHERE子句中可利用AND/O普拉多/IN/NOT等子句,以创制过滤规则
        
IN操作符用来钦定条件限制,范围中的每一种条件都可以进行般配.IN取壹组由逗号分隔,括在圆括号中的合法值.
     1壹.% 通配符:表示任意字符现身任意字数;不过不相配NULL;
     12._
通配符:与%区别的是,它只相配单个字符;即多个_意味着二个字符,可相称空格;
     13.[]
通配符:用来内定一个字符集,必须合营钦定地方(通配符地点)的多少个字符;
     1四.拼接字段:+ 或然 ||
     15.聚众函数:AVG():重回某列的平均值;
             COUNT():再次回到某列的行数
             MAX():再次来到某列的最大值
             MIN():重临某列的最小值
             SUM():再次回到某列值之和
        
以上聚集函数能够整合使用;给合使用时,FROM前的最终二个函数后不加逗号!!!
     1陆.创建数量分组:GROUP BY
         分组语句会将NULL作为一个分组再次回到;
         分组语句应在WHERE然后,O酷路泽DEGL450 BY 以前;
     一七.过滤分组语句:HAVING
     1八.内联结:INNEKoleos JOIN    ON 连接等值字段
     1玖.BETWEEN…AND…取中间的值,含头含尾,且小数在前,大数在后

六.更新
     一.更改表结构语句:
     增加列(字段):
         ALTE锐界 TABLE 要更改的表名    做出的变更;
bifa365必发,         举例:
         ALTER TABLE orderItems
         ADD order_totalPrice     DOUBLE(8,2)        NOT NULL;
        
在orderItems表中加进一列order_totalPrice列,使用DOUBLE类型,且不为空;

    删除列(字段):
         ALTER TABLE orderItems
         DROP    COLUMN order_totalPrice;
         在orderItems表中删除列oreder_totalPrice;
    
注意:数据库表中的改变不可撤消,操作前应开始展览全体的备份(情势和数量的备份);

    修改列(字段)的数据类型和束缚
         ALTER TABLE 表名
         MODIFY 列名 数据类型 约束;

    修改列(字段)名
         ALTER TABLE 表名
         CHANGE 原字段名 新字段名 新品类 新约束;

    修改表中的记录(行):其后可加WHERE子句
         UPDATE 表名
         SET 字段=新值;

    2.重命名表语句:
         RENAME TABLE 原表名 TO 新表名;

    3.插入数据悉话:
         INSERT    INTO
         举例:插入完整/部分的行
             INSERT INTO customers
             (
                 cust_id,
                 cust_name,
                 cust_email
             )
             VALUES(
                 ‘10000007’,
                 ‘philip’,
                 ‘philip@outlook.com’
             );
         举例:插入检索出的多少
             INSERT INTO    customers
             (
                 cust_id,
                 cust_contacts,
                 cust_email,
                 cust_name,
                 cust_address,
                 cust_city,
                 cust_state,
                 cust_zip,
                 cust_country
             )
             SELECT    cust_id,
             cust_contacts,
             cust_email,
             cust_name,
             cust_address,
             cust_city,
             cust_state,
             cust_zip,
             cust_country
             FROM    custNew;
         说明:
            
一.以此例子的用处:将custNew表中的相应数额插入到customers表中;
             二.INSE卡宴T
SELECT语句能够插入多行,即不管SELECT语句再次来到多少行,都将被插入;
             添加数据:
        
         INSERT INTO 表名 VALUES();

七.删除表/删除库
     1.删除表(整个表)语句
         DROP TABLE    custcCopy;
     注意:执行该语句将永远删除该表;

    删除数据:其后可加WHERE子句
         DELETE FROM 表名:将表中全部数据删除

8.常用数据类型:4种
     整数: int
     小数:double
     字符串:varchar
     日期:date
     long类型:big int

    字符串的值必要动用单引号或双引号包裹起来;
     定义字符串类型的字段时,必要钦定字符串的长短;
     日期期进行相比较时,需用单引号包裹;

sql的进行种种:
     from–where/having–order by/group by/limit–select

发表评论

电子邮件地址不会被公开。 必填项已用*标注