主要内容:
- 数据库和表的创建
- 表的插入操作,修改操作
附: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>,....)
说明:
- 数据类型是必须要指定的
- 约束可以不指定,可以在定义列的时候设置,也可以在语句的末尾进行设置
表的删除
代码:
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 <新表名>
命名规则
- 只能使用英文字母、数字、下划线作为数据库、表和列的名称
- 名称必须以英文字母开头
- 同一个数据库中不能创建两个相同名称的表,同一张表中不能有相同名称的列,否则会返回错误信息
数据类型的指定
主要有数字型、字符型和日期型
- 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 取出这条信息
网友评论