• mysql常用SQL语句


    数据库操作
    1:查看数据库
    SHOW  DATABASES;
    #默认数据库:
    mysql    -用户权限相关数据
    test     -用于用户测试数据
    information_sechema   -mysql本身架构相关数据

    2:创建数据库
    # utf-8 编码
    CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
    # gbk 编码
    CREATE DATABASE 数据库名称 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

    3:使用数据库
    USE db_name;
    # 可以不使用分号

    4:用户管理
    # 创建用户
    create user '用户名'@'IP地址' identified by '密码';
    # 删除用户
    drop user '用户名'@'IP地址';
    # 修改用户
    rename user '用户名'@'IP地址'; to '新用户名'@'IP地址';;
    # 修改密码
    set password for '用户名'@'IP地址' = Password('新密码')
    PS:用户权限相关数据保存在mysql数据库的user表中,所以也可以直接对其进行操作(不建议)

    5:授权管理
    # 查看权限
        show grants for '用户'@'IP地址'
    # 授权
        grant  权限 on 数据库.表 to   '用户'@'IP地址'
    # 取消权限
        revoke 权限 on 数据库.表 from '用户'@'IP地址'
    常用权限:
    all privileges   除grant外的所有权限
    select              仅查权限
    select,insert    查和插入权限
    usage              无访问权限

    对于目标数据库以及内部其他:
    数据库名.*                                                 数据库中的所有
    数据库名.表                                               指定数据库中某张表
    数据库名.存储过程                                   指定数据库中的存储过程
    *.*                                                                所有数据库

    6:授权局域网内主机远程连接数据库
    #百分号匹配法
        grant all on *.* to 'test'@'192.168.200.%' identified by 'test123';
    #子网掩码配置法
        grant all on *.* to 'test'@'192.168.200.0/255.255.255.0' identified by 'test123';
    #刷新权限
        flush privileges;
    #远程登陆连接
        mysql -utest -ptest123 -h 192.168.200.96


    表操作
    1、创建表

    # 基本语法:
    create table 表名(
        列名  类型  是否可以为空  默认值  自增  主键,
        列名  类型  是否可以为空
    )ENGINE=InnoDB DEFAULT CHARSET=utf8

    not null                # 不可以为空
    default 1              # 默认值为1
    auto_increment   # 自增
    primary key         # 主键
    constraint 外键名 foreign key (从表字段’自己‘) references 主表(主键字段)    # 外键

    是否可空,null表示空,非字符串
    not null    - 不可空
    null          - 可空

    默认值,创建列时可以指定默认值,当插入数据时如果未主动设置,则自动添加默认值
                create table tb1(
                    nid int not null defalut 2,
                    num int not null
                )

    自增,如果为某列设置自增列,插入数据时无需设置此列,默认将自增(表中只能有一个自增列)
                create table tb1(
                    nid int not null auto_increment primary key,
                    num int null
                )
                或
                create table tb1(
                    nid int not null auto_increment,
                    num int null,
                    index(nid)
                )


    2、删除表
    drop table 表名

    3、清空表

    # 表还存在,表内容清空
    delete from 表名
    truncate table 表名

    4、修改表

    # 添加列:
            alter table 表名 add 列名 类型
    # 删除列:
            alter table 表名 drop column 列名
    # 修改列:
            alter table 表名 modify column 列名 类型;  -- 类型
            alter table 表名 change 原列名 新列名 类型; -- 列名,类型

    # 添加主键:
            alter table 表名 add primary key(列名);
    # 删除主键:
            alter table 表名 drop primary key;
            alter table 表名  modify  列名 int, drop primary key;

    # 添加外键:
            alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
    # 删除外键:
            alter table 表名 drop foreign key 外键名称

    # 修改默认值:
          ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
    # 删除默认值:
          ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
    # 更改表名
             rename table 原表名 to 新表名;

    增删改表的字段
    #增加表字段,altertable法。
    1>    语法: altertable 表名 add 字段 类型 其他;
    eg:给student表添加一个sex列:alter table student add sex char(4);

    eg:给student表添加一列name,且该字段在sex的前面:alter table student add name vacrhar(20)  after sex;

    eg:给student表添加一列class,且该字段位于表的第一列:alter table student add class varchar(20)  first;

    #更改表名字,rename法:
    2>语法:rename  table 原表名  to  新表名;
    eg:把AAA表改名为BBB表:rename table AAA to BBB;


    #删除表
    1>    语法:drop table <表名>;
    eg:删除掉student表:drop table student;


    表内容操作
    1、增
    语法:insert into 表 (列名,列名...) values (值,值,值...)
    # 插入单条数据
            insert into 表 (列名,列名...) values (值,值,值...)
    # 插入多条数据
           insert into 表 (列名,列名...) values (值,值,值...),(值,值,值...)
    # 插入另一条语句的查询结果
            insert into 表 (列名,列名...) select 列名,列名... from 表

    2、删
    语法:delete from 表
    delete from 表;
    delete from 表 where id=1;

    3、改
    语法:update 表 set name = 'nick' where id>1
    update 表 set name = 'nick' where id>1

    4、查
    语法:select * from 表
    select * from 表
    select * from 表 where id > 1
    select nid,name,gender as gg from 表 where id > 1
    # as 做别名

    5、条件
    语法:select * from 表 where id > 1

    6、通配符
    语法:select * from 表 where name like '_n%'

    7、限制
    语法:select * from 表 limit 9,5;
    eg: select * from 表名    limit 5;            #查询表中的前五行数据
         select * from 表名   limit  9,5;        #从第九行开始的五行数据
         select * from  表名  limit 5 offset 9;#从第九行开始的五行数据

    8、排序
    语法:select * from 表 order by 列1 desc,列2 asc

    9、分组
    语法:select num from 表 group by num
    注:group by 必须在where之后,order by之前

    10、连表
    语法:inner join . on、left join . on、right join . on

    11、组合
    语法:union、union all

    原文链接:https://blog.csdn.net/weixin_41648325/article/details/80591326

  • 相关阅读:
    ionic app打包和签名
    js时间戳与日期格式的相互转换
    js获取选中日期的当周的周一和周日
    Error occurred during initialization of VM Could not reserve enough space for 2097152KB object heap
    CSS媒体查询 @media
    [ng:areq] Argument 'XXXXCtrl' is not a function, got undefined
    plsql如何导出查询结果
    angularjs的$http请求方式
    JQuery请求数据的方式
    后台返回xml格式转json
  • 原文地址:https://www.cnblogs.com/A121/p/11466070.html
Copyright © 2020-2023  润新知