mysql(3)对数据表的增删改
【数据表】数据库的重要组成之一,是其他对象的基础。
一、查看数据表结构
【打开数据库】use 数据库名称;
【查看打开的数据库】SELECT DATABASE();
【显示/查看某表的基本结构】SHOW COLUMNS FROM 数据表名;
【显示数据表】---例子:SHOW TABLES FROM mysql; //---------显示当前数据库中所有的表名称
【当前表的某条件记录的查找】语法:SELECT exp,...FROM 表名; --例子:SELECT * FROM tb1;
二、创建表
【创建表】语法:CREATE TABLE table_name (column_name column_type);
#注意:1. 在同一张表中,字段名是不能相同
2. 宽度和约束条件可选
3. 字段名和类型是必须的
CREATE TABLE [IF NOT EXISTS] 表名(
column_name data_type,
...
);
简化:CREATE TABLE 表名(
列名 数据类型,约束条件,
...
);
例子:CREATE TABLE tb1(
usename VARCHAR(20),
age TINYINT UNSIGNED,
salary FLOAT(8,2) UNSIGNED
); ---注意:表中的最后一个字段不要加逗号
三、插入数据
【插入记录-----insert】---重点
方法1:INSERT [INTO] 数据表名 [(col_name)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),...
例子1:INSERT tb1 VALUES(tom,25,4533.66);-------给全部字段匹配赋值
INSERT tb1(username,age)VALUES('tom',25); -------局部赋值
INSERT INTO users VALUES(NULL,'tom','123',25,1) ;
例子2 :INSERT INTO users VALUES(DEFAULT,'tom','123',3*7+4,1)(NULL,'Rose',md5('123'),DEFAULT,0); //---数学表达式,函数、可以插入多个记录
**准备为默认的自动标号的字段赋值,可以写成空值或default**
方法2:INSERT [INTO] tb1_name SET col_name={expr | DEFAULT},...
说明:与方法1区别,此方法可以使用子查询,一次只能插入一条。
例子:INSERT [INTO] 表名 SET username=‘Ben’,password=‘456’;
方法3:INSERT [INTO] tb1_name[(col_name)] SELECT... //----将查询结果写入到指定的数据表
例子3:INSERT test(usermane) SELECT username FROM users WHERE age>=30;
四、更新数据 ---(对已有的数据进行修改)
【更新记录】-----update单表更新,语法:update 表名 set 条件;
UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1 | DEFAULT} [,col_name2={expr | DEFAULT}]...
注:[WHERE where_condition] //-----------不加where表达式,数据会全部更新
例子1:UPDATE users SET age=age+5;
例子2:UPDATE users SET age=age-id,sex=0,;
例子3:UPDATE users SET age=age+10 WHERE id%2==0; // ---id号为偶数的用户年龄加10
【删除数据表】--delete单表删除
DELETE FROM 表名 WHERE id=6; //-------删掉id=6的记录。
------如果省略where条件将删除表中的全部记录。
(1)drop:删除表结构,当表不需要的时候会用到
(2)delete只删除数
【空值与非空】----NULL,字段可为空 NOT NULL,字段禁止为空
例子:CREATE TABLE tb2(
usename VARCHAR(20) NOT NULL,
age TINYINT UNSIGNED NULL
);
【自动编号---AUTO_INCREMENT】自动编号必须与主键组合使用;默认情况下起始值为1,每次增量为1;(-----说明为数值型)
例子:CREATE TABLE tb3(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAE(20) NOT NULL)
【主键-----PRIMARY KEY】 主键约束;每表只能有一个主键;主键保证记录的唯一性;主键自动为NOT NULL
例子:CREATE TABLE tb3(
id SMALLINT UNSIGNED PRIMARY KEY,
username VARCHAE(20) NOT NULL)
【唯一约束-------UNIQUE KEY】唯一约束可以保证记录的唯一性;唯一约束的字段可以为空值(NULL); 每张数据表可以存在多个唯一约束;
例子:CREATE TABLE tb5(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAE(20) NOT NULL UNIQUE KEY,
age TINYINT UNSIGNED); ------------
【默认约束---DEFAULT】默认值;插入记录时,如果没有明确为字段赋值,则自动赋予默认值;
例子:CREATE TABLE tb6(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAE(20) NOT NULL UNIQUE KEY,
sex ENUM('1','2','3')DEFAULT'3' //1代表男,2代表女,3代表保密
);