美文网首页读书笔记
《SQL基础教程》阅读笔记2

《SQL基础教程》阅读笔记2

作者: Athenaearl | 来源:发表于2018-11-12 23:37 被阅读4次

主要内容:

  • 数据库和表的创建
  • 表的插入操作,修改操作
    附:root用户使用mysql:
$ mysql -u root -p

数据库的创建

(笔者使用的是mysql,root用户登陆,效果如下)

mysql> CREATE DATABASE <数据库名称>;

注:在表创建之前,注意选择数据库,操作和结果如下:

mysql> use shop
Database changed

表的创建

mysql> CREATE TABLE Product
    -> (product_id CHAR(4) NOT NULL,
    -> product_name VARCHAR(100) NOT NULL,
    -> product_type VARCHAR(32) NOT NULL,
    -> sale_price INTEGER ,
    -> purchase_price INTEGER ,
    -> regist_date DATE ,
    -> PRIMARY KEY(product_id));
Query OK, 0 rows affected (0.02 sec)

语法格式:

CREATE TABLE <表名>
(<列名1> <数据类型> <该列所需约束>,
<列名2> <数据类型> <该列所需约束>,
<列名3> <数据类型> <该列所需约束>,
.
.
.
<该表的约束1>,<该表的约束2>,....)

说明:

  1. 数据类型是必须要指定的
  2. 约束可以不指定,可以在定义列的时候设置,也可以在语句的末尾进行设置

表的删除

代码:

mysql> DROP TABLE test;
Query OK, 0 rows affected (0.00 sec)

格式:

DROP TABLE <表名>

注:表的删除是无法恢复的,因此要非常小心

表定义的更新

当发现表中缺少了一列的时候,或者发现表中多了一列
代码(添加一列):

mysql> ALTER TABLE Product ADD COLUMN product_name_pinyin VARCHAR(100);
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

格式(添加一列):

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

代码(删除一列):

mysql> ALTER TABLE Product DROP COLUMN product_name_pinyin;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

格式(删除一列):

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

注:表定义的更新同样无法修改,要十分小心

向表中插入数据

如果要给表中的每一项都赋值:
代码:

mysql> INSERT INTO Product VALUES ('0001','T恤衫','衣服',1000,500,'2009-09-20');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Product VALUES ('0002','打孔机','办公用品',500,320,'2009-09-11');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Product VALUES ('0003','运动T恤','衣服',4000,2800,NULL);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Product VALUES ('0004','菜刀','厨房用具',3000,2800,'2009-09-20');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Product VALUES ('0005','高压锅','厨房用具',6800,5000,'2009-01-15');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Product VALUES ('0006','叉子','厨房用具',500,NULL,'2009-09-20');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Product VALUES ('0007','擦菜板','厨房用具',880,790,'2008-04-28');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Product VALUES ('0008','圆珠笔','办公用品',100,NULL,'2009-11-11');
Query OK, 1 row affected (0.00 sec)

格式:

INSERT INTO <表名> VALUES(value1,value2,value3,...);

如果只是给部分项赋值:(仅能保证mySQL有效)
格式:

INSERT INTO <表名> ( field1, field2,... ) VALUES ( value1, value2,... );

单条数据的删除

格式:(仅保证mySQL)

DELETE FROM <表名> WHERE <键名>=<键值>;

表名的修改

格式:

RENAME TABLE <原表名> to <新表名>

命名规则

  1. 只能使用英文字母、数字、下划线作为数据库、表和列的名称
  2. 名称必须以英文字母开头
  3. 同一个数据库中不能创建两个相同名称的表,同一张表中不能有相同名称的列,否则会返回错误信息

数据类型的指定

主要有数字型、字符型和日期型

  • INTEGER
  • CHAR(n) n代表最大可存放的长度
  • VARCHAR(n) 可变长字符串,n代表初始时候的长度
  • DATE
    同时笔者使用的mysql,有存小数的:
  • FLOAT(m,d)
  • DOUBLE(m,d)
  • DECIMAL(m,d)
    m 指定了总宽度,d指定了小数部分的位数

约束的设置

Product 这张表中有两种约束:
关于列的约束 NOT NULL 表明这个元素的值不可以为空
关于表的约束 PRIMARY KEY(product_id) 代表将product_id设置为主键约束的,即,可以通过 product_id 取出这条信息

相关文章

网友评论

    本文标题:《SQL基础教程》阅读笔记2

    本文链接:https://www.haomeiwen.com/subject/iwhhfqtx.html