启动
net start mysql
停止
net stop mysql
运行
mysql -u root -p
输入密码: ****
创建和查看数据库
SHOW DATABASES; #列出当前用户可查看的所有数据库
SHOW TABLES; #返回当前选择的数据库内可用表的列表。
CREATE DATABASE test1; #创建名为test1的数据库
DROP DATABASE test1; #删除名为test1的数据库
创建数据库(CREATE DATABASE语句)
CREATE DATABASE 语句创建数据库,语法格式如下:
CREATE DATABASE [IF NOT EXISTS] <数据库名>
[[DEFAULT] CHARACTER SET <字符集名>]
[[DEFAULT] COLLATE <校对规则名>];
[ ]中的内容是可选的。语法说明如下:
- <数据库名>: 创建数据库的名称。 MySQL 的数据存储区将以目录方式表示 MySQL 数据库,因此数据库名称必须符合操作系统的文件夹命名规则,不能以数字开头,尽量要有实际意义。注意在 MySQL 中不区分大小写。
- IF NOT EXISTS: 在创建数据库之前进行判断, 只有该数据库目前尚不存在时才能执行操作。此选项可以用来避免数据库已经存在而重复创建的错误。
- [DEFAULT] CHARACTER SET: 指定数据库的字符集。 指定字符集的目的是为了避免在数据库中存储的数据出现乱码的情况。如果在创建数据库时不指定字符集,那么就使用系统的默认字符集。
- [DEFAULT] COLLATE: 指定字符集的默认校对规则。
[实例] 最简单的创建 MySQL 数据库的语句
CREATE DATABASE test_db; #创建一个 ‘test_db’ 数据库
Query OK, 1 row affected (0.12 sec); #创建成功
CREATE DATABASE test_db; #创建同名数据库
ERROR 1007 (HY000): Can't create database 'test_db'; database exists #报错,数据库已存在
CREATE DATABASE IF NOT EXISTS test_db; #加上IF NOT EXISTS从句,就可以避免了出现错误提示
Query OK, 1 row affected (0.12 sec) #但只会有一个'test_db'名称的数据库,MySQL 不允许在同一系统下创建两个相同名称的数据库
[实例2] 创建表使用的字符集和校对规则
CHARACTER 默认字符集 ,SET设置,COLLATE 校对规则
CREATE DATABASE `springcloud` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
SHOW CREATE DATABASE springcloud; #查看数据库的定义声明,发现该数据库的指定字符集为 utf8
+-------------+---------------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database |
+-------------+---------------------------------------------------------------------------------------------------------------------------------------+
| springcloud | CREATE DATABASE `springcloud` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+-------------+---------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
修改数据库 (ALTER DATABASE语句)
使用 ALTER DATABASE 来修改已经被创建或者存在的数据库的相关参数。
ALTER DATABASE [数据库名] {
[ DEFAULT ] CHARACTER SET <字符集名> |
[ DEFAULT ] COLLATE <校对规则名>}
将指定数据库的指定字符集修改为 gb2312,默认校对规则修改为 gb2312_unicode_ci
mysql> ALTER DATABASE springcloud
-> DEFAULT CHARACTER SET gb2312
-> DEFAULT COLLATE gb2312_chinese_ci;
删除数据库(DROP DATABASE语句)
当需要删除已创建的数据库时,可以使用 DROP DATABASE 语句。
DROP DATABASE [ IF EXISTS ] <数据库名>
语法说明:
- <数据库名>:指定要删除的数据库名。
- IF EXISTS:用于防止当数据库不存在时发生错误。
- DROP DATABASE: 删除数据库中的所有表格并同时删除数据库。 使用此语句时要非常小心,以免错误删除。如果要使用 DROP DATABASE,需要获得数据库 DROP 权限。
注意:MySQL 安装后,系统会自动创建名为 information_schema 和 mysql 的两个系统数据库,系统数据库存放一些和数据库相关的信息,如果删除了这两个数据库,MySQL 将不能正常工作。
选择数据库(MySQL USE语句)
创建数据库之后,该数据库不会自动成为当前数据库,需要用 USE 来指定当前数据库。
USE <数据库名>
LIKE 从句
SHOW DATABASES LIKE 'test1'; #查看与test1完全匹配的数据库
SHOW DATABASES LIKE '%test%'; #查看名字中包含 ‘test’ 的数据库
SHOW DATABASES LIKE 'te%'; #查看名字以 ‘te’ 开头的数据库
SHOW DATABASE LIKE '%2'; #查看名字以 ‘2’ 结尾的数据库
SELECT 语句
从表中查询数据,执行的结果被存储在一个结果表中(结果集)
-- 从FROM指定的表中,查询出所有数据 * 表示所有列
select * from 表名称
-- 从FROM指定的表中,查询出指定的 列名称(字段)的数据,查询多个用逗号分隔
select 列名称 from 表名称
INSERT INTO 语句
向数据表中插入新的数据行
-- 向指定的表中插入如下几列数据,列的值通过 values一一指定
-- 注意: 列和值要一一对应,多个列和多个值之间,使用英文逗号分割
-- 向users表中插入新数据, username的值为lsy password的值为123456
insert into users (username, password) values ('lsy', '123456');
UPDATE 语句
-- 修改users 表中id为3的密码,更改为666666
update users set password='666666' where id="3"
-- 更新users表中id为3的password和status
update users set password='222222',status=1 where id="3"
DELETE语句
-- 删除users表中id为4的用户
delete from users where id=4
WHERE 子句
用于限定选择的标准 在SELECT UPDATE DELETE语句中,接可使用where语句来限定标准
-- 查询users中status为1的所有用户
select * from users where status=1
-- 查询id大于2的所有用户
select * from users where id>2;
-- 查询 username 不等于 admin 的所有用户
select * from users where username<>'admin'
AND和OR运算符
-- 状态为0和id<3的数据
select * from users where status=0 and id<3
-- 状态为1或者id<3的数据
select * from users where status=1 or id<3
ORDER BY 子句
对指定表中的数据,按指定字段进行升序排序 asc
select * from users order by status;
-- asc可以默认不写
select * from users order by status asc;
对id字段进行降序排序 desc
select * from users order by id desc;
多重排序
select * from users oredr by status desc, username asc;
COUNT(*)函数
-- 查询users表中status为0的总数据条数
select count(*) from users where statsu=0
AS关键字
使用as关键字给指定字段列起别名
select count(*) as total from users where status=0
select username as uname, password as upwd from users