【收藏】MySQL常用操作

数据库操作

-- 查看已存在的数据库, 切换当前使用的数据库
SHOW DATABASES;

-- 创建db_test数据库
CREATE DATABASE IF NOT EXISTS db_test;

-- 切换选择数据库
USE db_test;

-- 删除db_test数据库
DROP DATABASE IF EXISTS db_test;

数据表操作

通用语法: CREATE TABLE table_name (column_name column_type);

CREATE TABLE <表名> (
	<字段名> <字段类型> <限定词>,
	<主键>,
	...
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 查看当前数据库中的表
SHOW TABLES;

-- 创建表
CREATE TABLE IF NOT EXISTS `user` (
	`id` INT UNSIGNED AUTO_INCREMENT,
	`name` VARCHAR(100) NOT NULL,
	`gender` VARCHAR(40) NOT NULL,
	`date` DATE,
	PRIMARY KEY (`id`)
) ENGINE = INNODB CHARSET = utf8;

-- 根据现有的表(orig_tbl) 创建新的表(new_tbl)
CREATE TABLE new_tbl LIKE orig_tbl;

-- 根据现有的表(orig_tbl) 创建新的表(new_tbl) 并把查询结果作为新表的数据
CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;

-- 查看表结构,
DESC t_user;
SHOW COLUMNS FROM t_user
/*
+--------+------------------+------+-----+---------+----------------+
| Field  | Type             | Null | Key | Default | Extra          |
+--------+------------------+------+-----+---------+----------------+
| id     | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| name   | varchar(100)     | NO   |     | NULL    |                |
| gender | varchar(40)      | NO   |     | NULL    |                |
| date   | date             | YES  |     | NULL    |                |
+--------+------------------+------+-----+---------+----------------+ */

-- 删除数据表
DROP TABLE table_name;
  1. 非空 NOT NULL
  2. 自动增长 AUTO_INCREMENT
  3. 定义主键 PRIMARY KEY
  4. ENGINE设置存储引擎
  5. CHARSET 设置编码
  6. DEFAULT 默认值

数据增、删、改、查

-- 指定列名添加数据
INSERT INTO `user` (NAME, gender, date)
VALUES
	('xiaoqiang', 'male', curdate());

-- 不指定列名添加数据
INSERT INTO `user`
VALUES
	( 1, 'Edwin', 'male', now( ) );

-- 数据查询
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]

-- 更新数据
UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause];

-- 删除数据
DELETE FROM table_name [WHERE Clause];

-- 清空表中的数据
TRUNCATE [TABLE] table_name;

DELETE 语句可以通过 WHERE 对要删除的记录进行选择。而使用 TRUNCATE TABLE 将删除表中的所有记录。因此,DELETE 语句更灵活。

表结构修改

-- 查看表结构
DESC table_name;

-- 表重命名
ALTER TABLE user RENAME t_user;

-- 修改列名(注意: 要指定列数据类型)
ALTER TABLE `user` CHANGE COLUMN `id` `uid` int(10) UNSIGNED;

-- 需改列数据类型
ALTER TABLE `user` CHANGE COLUMN `id` `id` int(10) UNSIGNED;

-- 删除列
ALTER TABLE `user` DROP COLUMN `comment`;

-- 添加列
ALTER TABLE `user` ADD COLUMN `createTime` DATE DEFAULT '2019-04-02' AFTER `name`;

-- 调整字段顺序
ALTER TABLE `user` CHANGE `nickName` int not null DEFAULT 'HAHAHA' AFTER `id`;

实战练习1

/**
项目三:超过5名学生的课(难度:简单)
创建如下所示的courses 表 ,有: student (学生) 和 class (课程)。
*/

-- 1. 创建表
CREATE TABLE courses (
	`student` VARCHAR(10) NOT NULL,
  `class`		VARCHAR(60)
);

-- 2. 插入数据
INSERT INTO courses(student, class) VALUES('A', 'Math');
INSERT INTO courses(student, class) VALUES('B', 'English');
INSERT INTO courses(student, class) VALUES('C', 'Math');
INSERT INTO courses(student, class) VALUES('D', 'Biology');
INSERT INTO courses(student, class) VALUES('E', 'Math');
INSERT INTO courses(student, class) VALUES('F', 'Computer');
INSERT INTO courses(student, class) VALUES('G', 'Math');
INSERT INTO courses(student, class) VALUES('H', 'Math');
INSERT INTO courses(student, class) VALUES('I', 'Math');
INSERT INTO courses(student, class) VALUES('A', 'Math');

-- 3. 条件查询
/*要求:
	列出所有超过或等于5名学生的课。
	学生在每个课中不应被重复计算。*/
SELECT
	class
FROM
	( SELECT student, class FROM courses GROUP BY student, class ) AS filter_table
GROUP BY
	class
HAVING
	count( class ) >= 5;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值