mysql输出语句_MySQL基础(二)表操作

e0b0c65468149818de87b9321d026cce.png

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。

0a8a8a2a199d32b654969a9d8b013047.png

字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET,主要区别在于进制选择和字符串字节大小。

详情:

MySQL 数据类型 | 菜鸟教程​www.runoob.com

2. 用SQL语句创建表

CREATE 

创建MySQL数据表需要以下信息:

  • 表名
  • 表字段名
  • 定义每个表字段数据类型、约束
  • 设定主键

实例

CREATE TABLE fist_table 
	(city_id INT NOT NULL ,
	 nametest CHAR NOT NULL ,
	 credits BIGINT NOT NULL,
	 PRIMARY key (city_id)
	)

查看结果,三个列,没有行:

cc3746e6296769181ee927c02497ba85.png

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);

输出为:

82400f3d5b47b6603d5a1b093e6dd2b4.png

同时插入多行数据

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");

表如下:

3ab3e9e084cd6be2c5516ba95b7f5a50.png

查询语句,使用嵌套查询,先去重,再分组筛选

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);

表如下:

3476a13ddbc4401fa776ae2167ee3f3e.png

利用case when else end语句

UPDATE 

3f5e25c28cded0979ff337396cf4c413.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值