1.MySQL表的数据类型
一般而言,分为数值、日期和字符串。详情请看数据类型。
用SQL语句创建表
CREATE TABLE Products
(
prod-id CHAR(10) NOT NULL,
prod_price DECIMAL(8,2) NOT NULL,
prod_desc TEXT(1000) NULL
);
语句解释
创建了一个名为“Products”的表,里面分别包含了prod_id,prod_price,prod_desc等列,列和列之间用逗号隔开。列名后面的语句分别指明了该列的数据类型和是否为NULL值。若为NULL值,则允许在插入数据时不给该列进行赋值,若为NOT NULL,则必须有值。缺省情况下默认是NULL。
设定列类型、大小和约束
如上,CHAR、DECIMAL、TEXT为数据类型,(10)、(8,2)、1000为大小。约束有主键约束、外键约束、唯一约束、非空约束、自增约束和默认约束等等,可参考这里。
设定主键
- 第一种方法
CREATE TABLE TableName
(
id INT PRIMARY KEY
);
- 第二种方法
CREATE TABLE TableName
(
id INT,
PRIMARY KEY(id)
);
- 第三种方法
ALTER TABLE TableName add PRIMARY KEY(id)
2.用SQL语句向表中添加数据
INSERT INTO Customers
VALUES
(
'10000',
'Tony',
'123 Any Street'
);
语句解释
将一个新顾客插入到Customers表中,相应的数据在VALUES子句中给出。但需要注意两点:一是需要给每列提供值,若没有值则使用NULL;二是插入顺序需要与表中列的顺序一致。
上述语句语法简单,但却非常不安全。不利于后期维护和更新表。所以更稳妥的方法是赋值时指定列名。具体实现方法如下:
INSERT INTO Customers
(
cust_id,
cust_name,
cust_address
)
VALUES
( '10000',
'Tony',
'123 Any street'
);
3.用SQL语句删除表
- 第一种
DROP TABLE CustCopy;
语句解释
DROP
会永久删除表,不能撤销。
- 第二种
TRUNCATE FROM CustCopy;
语句解释
删除表中所有内容,但该表仍然存在,只是表内容为空。
- 第三种
DELETE FROM CustCopy
WHERE cust_id = '10000';
语句解释
删除表中某行内容。需要注意的是:需要用WHERE
指定行,否则将删除全部内容。
5. 用SQL语句修改表
修改列名
ALTER TABLE Customers
CHANGE cust_id CustID CHAR(10)
修改表中数据
--修改列名
ALTER TABLE TableName
ALTER COLUMN ColumnName TEXT(1000);
--更新数据
UPDATE Customers
SET cust_mail = 'kim@thestore.com'
WHERE cust_id = '10000';
UPDATE
后加表名,SET
后进行赋值,WHERE
指明在哪行更新。若没有WHERE
子句,则默认对所有行赋值。
删除行
--删除一行
DELETE FROM customers
WHERE cust_id ='10000';
--删除所有行
DELETE FROM Customers
TRUNCATE TABLE;
注意:使用DELETE
语句删除部分或全部行时一定要小心,若你只想删除部分行,请务必加WHERE0
子句。相信你不会想成为从删库到跑路的传说。
删除列
ALTER TABLE Customers
DROP Column cust_id;
新建列
ALTER TABLE Customers
ADD cust_id CHAR(10);
新建行
和添加数据的操作INSERT INTO
一样。