mysql增删改查相关操作

时间:2023-03-08 16:55:19
mysql增删改查相关操作

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用户