mysql增删改查相关操作
以前用mysql用的少,对于数据库相关的操作不熟悉,现在开始要接触数据库了,记录一下相关的基础操作吧。
1、数据库的授权操作
# mysql -u root -p
Enter password:
mysql> grant all privileges on *.* to root@'%' identified by '<password>' with grant option;
## 表示为root用户添加所有数据库所有权限,并可以给其他人授权。
mysql> grant select,insert,update,delete on mydb.mytable to liawne@192.168.110.1 identified by 'mysqld' with grant privileges;
mysql> flush privileges;
## mysql> grant 权限1,权限2,...权限n 数据库名称.表名称 to 用户名@用户地址 identified by 连接口令;
## 权限为select、insert、update、delete、create、drop、index、alter、grant、references、reload、shutdown、process、file等14个权限。
## 连接口令不能为空,否则会授权失败。
2、库操作命令
mysql> use mydb; # 连接数据库
mysql> show databases; # 显示数据库
mysql> create database <dbname> character set utf8; # 创建数据库,设定字符集为utf-8
mysql> drop database <dbname>; # 删库
3、表操作命令
mysql> show tables; # 显示表
mysql> describe <tablename>; # 显示表的具体结构
mysql> show columns from <tablename>; # 查看表的列项目及结构
mysql> show create table <tablename>; # 查看创建表语句
mysql> create table mytable(
-> id int auto_increment primary key, # ID自增并设置为主键
-> name varchar(10) not null, # 姓名不允许为空
-> sex varchar(5) default 1, # 性别默认1
-> phone bigint not null unique, # 电话不允许为空且值必须唯一
-> create_time datetime default now(), # 创建时间默认为当前时间
-> addr varchar(50), # 地址栏允许输入字符不超过50
->);
mysql> drop table mytable; # 删除表
mysql> alter table mytable rename mytable_new; # 修改表名称
mysql> alter table mytable change name names varchar(15); # 修改字段类型并重命名字段
mysql> alter table user modify name varchar(15); # 修改字段类型
mysql> alter table user add password varchar(20) not null after name; # 在指定位置新增字段
4、数据操作命令
mysql> insert into user values('','张三','男','1234567890',NOW(),'北京市海淀区'); # 表中新增数据
mysql> insert into user(name,phone,create_time) values('张三','12348567890',NOW()); # 表中指定字段添加数据
mysql> delete from user; # 删除表中数据
mysql> truncate user; # 清空表
mysql> delete from user where id=1; # 删除表中指定的数据
mysql> update user set sex='男'; # 更改表中所有数据
mysql> update user set sex='男' where name='张三'; # 更改表中指定数据
mysql> update user set sex='男',addr='北京市朝阳区' where name='张三'; # 更改表中多个字段
mysql> update user set phone=phone+1 where name='张三'; # 在原有数据基础上更改
mysql> select * from user limit 5; # 查询前5条数据
mysql> select * from user limit 2,4; 注:从第几条开始查询(下标从0开始),查询多少条 # 查询第3至6条数据
mysql> select name,sex,phone from user; # 查询指定字段
mysql> select * from user where name='张三' and sex='男'; 注:and表示多个条件必须同时满足 # 单表查询
5、用户管理命令
mysql> insert into user (user,host,password) values('xiaoxitest','%',PASSWORD('123456'));
## 添加xiaoxitest用户并允许远程计算机登录,密码为:123456
mysql> update user set password=password("654321") where user='xiaoxitest'; # 更改用户密码
mysql> update user set user='xiaoxi' where user='xiaoxitest'; # 更改用户名xiaoxitest为xiaoxi
mysql> delete from user where user='xiaoxi'; # 删除xiaoxi用户