1. MySQL表数据类型
2. 用SQL语句创建表
3. 用SQL语句向表中添加数据
4. 用SQL语句删除表
5. 用SQL语句修改表
疑问:update和alter的区别
1. MySQL表数据类型
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
数值这一块主要是整数(TINYINT、INT、BIGINT)、浮点数(FLOAT、DOUBLE)、正负(unsigned、signed)的划分。
日期和时间这一块,类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET,主要区别在于进制选择和字符串字节大小。
详情:
MySQL 数据类型 | 菜鸟教程www.runoob.com2. 用SQL语句创建表
CREATE
创建MySQL数据表需要以下信息:
- 表名
- 表字段名
- 定义每个表字段数据类型、约束
- 设定主键
实例
CREATE TABLE fist_table
(city_id INT NOT NULL ,
nametest CHAR NOT NULL ,
credits BIGINT NOT NULL,
PRIMARY key (city_id)
)
查看结果,三个列,没有行:
3. 用SQL语句向表中添加数据
MySQL 表中使用INSERT INTOSQL语句来插入数据,以行的方式插入。
以下为语法:
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
实例:
指定列赋值
INSERT INTO fist_table (city_id,nametest,credits) VALUES (124,"y",234);
INSERT INTO fist_table (city_id,nametest,credits) VALUES (123,"a",224);
INSERT INTO fist_table (city_id,nametest,credits) VALUES (164,"n",264);
INSERT INTO fist_table (city_id,nametest,credits) VALUES (125,"w",134);
INSERT INTO fist_table (city_id,nametest,credits) VALUES (144,"a",284);
输出为:
同时插入多行数据
INSERT INTO fist_table (city_id,nametest,credits) VALUES (134,"a",284),(122,"a",284);
不指定列赋值
4. 用SQL语句删除表
DELETE 语句用于删除表中的行。
DELETE FROM 表名称 WHERE 列名称 = 值;
DROP语句会删除整个数据表。
DROP TABLE 表名称 ;
TRUNCATE语句,表格中的资料会完全消失,可是表格本身会继续存在。
TRUNCATE TABLE 表名称;
5. 用SQL语句修改表
修改列名
ALTER TABLE 表名称 CHANGE COLUMN 列名 新列名 定义;
ALTER TABLE fist_table CHANGE COLUMN nametest nametrain CHAR NOT NULL;
修改表中数据
UPDATE salary SET field1 = new_value1,field2 = new_field2 WHERE 条件
删除行
DELETE FROM 表名称 WHERE 条件
修改表列类型,有两种方法
ALTER TABLE fist_table CHANGE COLUMN namenew namenew CHAR DEFAULT "a";
ALTER TABLE fist_table MODIFY namenew VARCHAR(20) ;
删除列
ALTER TABLE fist_table DROP COLUMN nametrain;
新建列
ALTER TABLE fist_table ADD COLUMN namenew VARCHAR(20);
新建行,利用insert语句
实践一、找出有超过5名学生参加的课。
首先创建查询所需要的表
CREATE TABLE courses
(student CHAR NOT NULL,
class VARCHAR(20) NOT NULL);
INSERT INTO courses
VALUES
("A","Math"),("B","English"),("C","Math"),("D","Biology"),
("E","Math"),("F","Computer"),("G","Math"),("H","Math"),
("I","Math"),("A","Math");
表如下:
查询语句,使用嵌套查询,先去重,再分组筛选
SELECT class FROM (SELECT DISTINCT * FROM courses) AS new_table GROUP BY class HAVING COUNT(class) > 5
输出结果
class
Math
另一种方法,使用group by,分组列为student,class
SELECT class FROM (SELECT * FROM courses GROUP BY student,class ) AS new_table GROUP BY class HAVING COUNT(class) > 5
实践二、表列sex中的“f”和“m”相互替换
首先创建查询所需要的表
CREATE TABLE salary
(id int NOT NULL,
name CHAR NOT NULL,
sex VARCHAR(20) NOT NULL,
salary BIGINT NOT NULL);
INSERT INTO salary VALUES
(1,"A","m",2500),
(2,"B","f",1500),
(3,"C","m",5500),
(4,"D","f",500);
表如下:
利用case when else end语句
UPDATE