SQL基础语法

SQL基础语法,第1张

目录

1.SQL建库建表语句

1.建库:

2.建表:

2.SQL增删改查语法

1.插入数据

2.查找数据库

3.删除表数据(delete)

4.新增数据(insert)

5.修改数据(update)

3.SQL表关联查询

1.内连连接查询

 2.左连接

3.右连接

 4.全连接

5.三表链接

4.SQL子查询


1.SQL建库建表语句 1.建库:

        CRATE DATABASE IF NOT EXISTS 库名 DEAFAULT CHARSET utf8(默认字符)

                IF NOT EXISTS:当表不存在的时候执行建库建表

2.建表:

        CREATE TABLE ACCOUNT(
            id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
            username VARCHAR(20) NOT NULL,
            birthday DATE,
            money INT NOT NULL
        );  

               

      PRIMARY KEY  概念:主键用于唯一标识表中的每一条数据        主键的特征:不能重复, 不能为空

      AUTO_INCREMENT 概念:自增    开始值是 1,每条新记录递增 1

      INT :数值类型(整数。FLOAT为小数点型)                VARCHAR:为字符串类型

      DATE : 日期型默认为(YYYY-MM-DD)

        

2.SQL增删改查语法 1.插入数据

        INSERT INTO 表名(字段名1,字段名2,字段名3) VALUES(‘内容1’,'内容2','内容3')

                如果内容是字符串型,需要的双引号

2.查找数据库

        全表查询:SELECT * FROM 表名     * 号为全表字段显示可以把星号改为需要显示的字段

        在表名后面可以加上where 条件 就是条件查询 多个条件可以用AND或OR 链接

3.删除表数据(delete)

        语句:DELETE FROM 表名[where name=‘张三’]

                为加where 就是删除整张表数据                 加上where条件就是删除指定表数据

                drop table 表名   :删除整张表         drop database 库名 : 删除整个数据库

4.新增数据(insert)

        基础语句:insert into表名(字段名)values(值);

        例如:insert into student(name , age)values(' 张三' ,20);

                表示为:给student表增加一条数据,name的值为’张三‘,age的值为20

5.修改数据(update)

        基础语句: update 表名 set 字段名1 = 新增值1,字段名2 = 新增值2 where 条件

        例如:update student set name = ‘李四’ , age = 15 where id = 3

                表示为:给student表的id为3的数据修改,如果未加where 条件就是修改全部

3.SQL表关联查询 1.内连连接查询

        表1:

         表2:

1.内连接

        方法1 , SELECT * FROM websites(表名称1) w(简写1) INNER JOIN access_log(表名称2) a(简写2) ON w.id=a.site_id;

        w.id    a.site_id : 为表关联字段

        结果为:

 2.左连接

        #左连接 left join ... on
        SELECT * FROM websites2 w LEFT JOIN access_log a ON w.id=a.site_id;

        结果为:

3.右连接

        #右连接 right join .. on
        SELECT * FROM websites2 w RIGHT JOIN access_log a ON w.id=a.site_id;

        结果为:

 4.全连接

        #全连接=左连接 union 右连接
        SELECT * FROM websites2 w LEFT JOIN access_log a ON w.id=a.site_id
        UNION ALL
        SELECT * FROM websites2 w RIGHT JOIN access_log a ON w.id=a.site_id;

结果为:

 

5.三表链接

        #三表关联查询,第一个表关联中间表的结果,然后关联第二个表
                SELECT st.*,sc.*,su.* FROM student st
                INNER JOIN score sc ON st.no=sc.no
                LEFT JOIN sub su ON sc.subno=su.subno

4.SQL子查询

 1.列子查询

        原表:

 

        SELECT * FROM access_log WHERE COUNT >= (SELECT COUNT FROM access_log WHERE site_id = 2)

结果:查询count大于等于id等于2的数据

        先查询id等于2的count数据,再通过where查询

2.表子查询

 图1:

 

图2:

 

SELECT e.emp_ name, e. salary,e.dept_ id, d. dept_ name

FROM (

        SELECTemp_ name , dept_ id, salary FROM empWHERE dept_ id >= 2

        AND salary > 5000

        LEFT JOIN dept d

)e

LEFT JOIN dept d

ON e.dept_ id = d.'ld ;

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/993988.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存