Mysql安装
参考这个https://www.runoob.com/mysql/mysql-install.html
安装完成后会有一个root自动生成的密码,复制下来
Mysqld管理
Windows下启动mysqld
1 |
|
Linux下启动MySQL服务
检查MySQL服务器是否启动
1 |
|
启动服务:
1 |
|
mysql 管理
登录mysql
在已添加环境目录条件下,直接打开命令行窗口
1 |
|
输入安装时生成的密码,第一次使用需要修改root密码
1 |
|
添加用户
在root用户下,添加用户的方法
一种是权限账号分别赋予的方式
1 |
|
另一种就是将两个步骤结合:
1 |
|
说明:
- db: 赋予指定的数据库权限,*代表所有库
- table: 赋予指定的数据表权限,*代表所有表
- username:用户名
- host: 登录主机,%代表任意(192.168.1.%代表192.168.1.0-192.168.1.255,其他类推)
- password: 密码
- privileges:权限,多个用
,
隔开,可选如下- select
- insert
- update
- delete
- create
- …….
注意:在注意需要执行 FLUSH PRIVILEGES 语句。 这个命令执行后会重新载入授权表。
如果不使用该命令,重启mysql服务器前无法使用新账号登录
####
其他命令
查看所有用户:select User,Host from mysql.user;
1 |
|
选择数据库:use dbname;
1 |
|
查看当前使用的数据库:select database();
1 |
|
显示所有数据库:show databases;
1 |
|
显示指定数据库中的所有表:show tables;
使用前需要用use指定数据库
1 |
|
显示数据表结构:show columns from 数据表
选择数据表时可以用数据库.数据表
,另外也可以用desc 数据表
1 |
|
mysql语法
创建数据库:create database 数据库名;
create database {if not exist} [dbname] {default character set [charset] collate [collate]}
- if not exist:不存在该库时创建该库
- dbname: 数据库名
- default char…:设置默认编码集和检验方式
1 |
|
删除数据库:drop database 数据库名;
1 |
|
创建数据表:create table 表名
1 |
|
说明:
- tablename:表名
- cloumn_name:列名
- column_type: 值类型
- engine:数据库储存引擎,可省略
- charset:编码集,可省略;
1 | mysql> create table demoo( |
primary key 指定主键
not null 指定该列所有值非空
auto_increment指定该值自动增加
删除数据表:drop table 表名;
删除数据表有两种方式
drop table 表名
:完全删除表,表的数据和表结构都将删除
truncate table 表名
:删除表中欧过的所有数据,自增的主键也会重新开始
delete from 表名
也可以删除表中所有数据,但是它不会清楚计数,添加新行时,自增主键不会重新开始计数
插入数据:insert
insert into [tbname] (column1,column2,...) values (v1,v2,...);
自增主键可以省略
1 |
|
如果所有的列都要添加数据可以不规定列进行添加数据(主键用0或者null代替):
1 |
|
然后我们有了两个数据
1 |
|
查询数据:select * from 表名;
1 |
|
- SELECT 命令可以读取一条或者多条记录。
- 使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
- 使用 WHERE 语句来包含任何条件。可省略
- 使用 LIMIT 属性来设定返回的记录数。可省略
- 通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。可省略
- 通过group by 进行分组
- having用于对where和group by查询出来的分组经行过滤,查出满足条件的分组结果。它是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作。
- order by 进行排序
1 |
|
where子句
可以用=,>,<,>=,<=,!=或<>分别代表等于,大于,小于,大于等于,小于等于,不等:
1 |
|
用and or
拼接多个条件:
1 |
|
更新数据:update tbname set field1=value1...;
1 |
|
不加where的话,表中所有的数据都将被替换
将某一值改回默认值:update tbname set field=default where ...
1 |
|
删除某行数据:delete from tbname [where];
不写where条件的话,将会删除所有数据
删除某一项后,主键计数不会改变
1 |
|
LIKE 子句
举例:
show variables like 'character%'
:1
2
3
4
5
6
7
8
9
10
mysql> show variables like 'character%';
+--------------------------+------------------------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
...
+--------------------------+------------------------------------------------------+
8 rows in set, 1 warning (0.00 sec)select * from demoo where stu_name like '李%'
:
%
类似于通配符*
,表示任意 0 个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。
_
表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句。
[]
表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
[^]
表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
查询内容包含通配符时,由于通配符的缘故,导致我们查询特殊字符 “%”、“_”、“[” 的语句无法正常实现,而把特殊字符用 “[ ]” 括起便可正常查询。