0
点赞
收藏
分享

微信扫一扫

天池SQL训练营Task1打卡

蓝哆啦呀 2022-02-12 阅读 77

数据库中存储的表结构,行称为记录,列称为字段.

DDL:数据定义语言

用来创建或者删除存储数据用的数据库以及数据库中的表等对象

CREATE
DROP
ALTER:修改数据库和表等对象的结构
DML:数据操纵语言

用来查询或者变更表中的记录

SELECT:查询表中数据
INSERT:向表中插入新数据
UPDATE:更新表中的数据
DELETE:删除表中的数据
DCL:用来确认或者取消对数据库中的数据进行的变更

SQL基本书写规则:

语句以分号(;)结尾

不区分关键字大小写,但是插入到表中数据是区分大小写

win系统默认不区分表名以及字段名的大小写

linux/mac默认严格区分表名及字段名大小写

常数的书写方式是固定的

‘abc’,‘1234’,‘2010-01-26’

SQL语句的单词质检需要使用半角空格或换行符来进行分隔,且不能使用全角空格作为单词的分隔符,否则会发生错误

基本语法:

数据库的创建:CREATE DATABASE <数据库名称>;

表的创建:CREATE TABLE<表名>

(<列名1><数据类型><该列所需约束>,

<列名2><数据类型><该列所需约束>,

.

.

.

)

eg.CREATE TABLE product(

product_id CHAR(4) NOT NULL,

product_name VARCHAR(100) NOT NULL,

sale_price INTEGER,

.

);

命名规则

只能使用半角英文、数字、下划线作为数据库、表和列的名称
名称必须以半角英文字母开头,不能以数字、下划线开头
数据类型的指定

INTEGER

指定存储整数的列的数据类型,不能存储小数

CHAR型

存储定长字符串,当列中存储的字符串长度达不到最大长度的时候,使用半角空格进行不足,由于会浪费存储空间,一般不使用

VARCHAR型

存储可变长度字符串,定长字符串在字符数未达到最大长度时会用半角空格补足,但可变长度字符串不同,即使字符数未达到最大长度,也不会用半角空格补足

DATE型

指定存储日期(年月日)的列数据类型(日期型)

表的删除和更新

删除表

DROP TABLE <表名>;

DROP TABLE product; 表删除后都无法恢复,所以要提前做好备份

添加列的ALTER TABLE语句

ALTER TABLE <表名> ADD COLUMN <列的定义>;

添加一列可以存储100位的可变长字符串的product_name_pinyin列

ALTERE TABLE product ADD COLUMN product_name_pinyin VARCHAR(100);

删除列的ALTER TABLE语句

ALTER TABLE <表名> DROP COLUMN <列名>;

ALTER TABLE product DROP COLUMN product_name_pinyinl;

删除product_name_pinyin列

ALTER TABLE product DROP COLUMN product_name_pinyin;

ALTER TABLE 和 DROP TABLE语句一样执行之后无法恢复

清空表内容:

TRUNCATE TABLE TABLE_NAME

相比drop/delete truncate用来清除数据时,速度最快

数据的更新

UPDATE

SET = [,<列名2>=<表达式2>…];

WHERE<条件>;

ORDER BY 子句

LIMIT 子句

使用UPDATE时要注意添加WHERE条件,否则会将所有号行按照语句修改

修改所有注册时间

eg.UPDATE product

​ SET regist_date = ‘2009-10-10’;

–仅修改部分商品单价

UPDATE product

​ SET sale_price = sale_price * 10

WHERE product_type = ‘厨房用具’;

​ --将商品编号为0008的数据(圆珠笔)的登记日期更新为N ULL

​ UPDATE product

​ SET regist_date = NULL

​ WHERE product_id = ‘0008’;

​ 和 INSERT语句一样,UPDATE语句也可以将NULL作为一个值来使用。

​ 但是只有未设置NOT NULL约束和主键约束的列才可以清空NULL。如果将设置了上述约束的列更新为NULL,就会出错,这点与insert相同

多列更新
UPDATE语句的SET子句支持同时将多个列作为更新对象

UPDATE product

​ SET sale_price = sale_price * 10

WHERE product_type ‘厨房用具’;

UPDATE product

​ SET purchase_price = purchase_price / 2

WHERE produce_type = ‘厨房用具’;
1
2
3
4
5
6
7
8
9
10
11
12
13
合并写法

UPDATE product

​ SET sale_price = sale_price * 10

​ purchase_price = purchase_price / 2

WHERE product_type = ‘厨房用具’;
1
2
3
4
5
6
7
8
9
SET子句中列不仅可以是两列,还可以是三列或者更多

向product表中插入数据
INSERT INTO (列1, 列2, 列3,…) values(值1,值2,值3,…);

对表进行全列INSERT时,可以省略表名后的列清单,这时values子句的值会默认按照从左到右的顺序赋给每一列

多行INSERT:

通常的INSERT:

INSERT  INTO productins VALUES ('0002', '打针器', '办公用品',  500, 320, '2009-09-20'),('0003' ,'运动T恤', '衣服', 4000, 2800, NULL),
('0004', '菜刀', '厨房用具', 3000, 2800, '2009-09-20');
举报

相关推荐

0 条评论