• SQL常用命令


    1、查看已有数据库

    show database  数据库名称;

    2、切换、连接数据库

    use 数据库名称;

    3、查看当前连接的数据库

    select database();

    4、创建数据库

    create database 数据库名称;

    5、修改,删除数据库

    alter database 数据库名称 character set 字符编码名称;

    drop database 数据库名称;

    6、mysql常用数据类型

    • int:整型 double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
    • char:固定长度字符串类型; varchar:可变长度字符串类型; text:字符串类型;
    • blob:字节类型;
    • date:日期类型,格式为:yyyy-MM-dd;
    • time:时间类型,格式为:hh:mm:ss
    • timestamp:时间戳类型 格式为:yyyy-MM-dd hh:mm:ss

     7、查看当前库已有表:

         show tables;

      查看表定义信息:

         show create table 表名;

      查看表结构:

        desc 表名;
    8、创建表
    create table 表名( 列名 数据类型(长度), 列名 数据类型(长度), …… );
    9、修改表

      a.为emp表添加列address varchar(30)

        alter table emp add address varchar(30);

      b.修改emp表的address 数据长度为40

        alter table emp modify address varchar(40);

      c. 修改address列名为addr

        alter table emp change address addr varchar(40);

      d. 删除emp表的addr列

        alter table emp drop addr;

      e. 修改emp表的表名为employee

        alter table emp rename to employee;
        alter table emp rename employee;
    10、删除表
    drop table 表名;
    11、完整性约束
      完整性约束:保证数据库表中数据的正确性,合理性等。 

         数据库约束:

      1. 主键约束:用户保证表中数据的唯一性(没有重复的数据)
      2. not null:非空约束。约束列中的数据非空
      3. unique:唯一约束。保证列数据的唯一性(不能重复)
      4. 外键约束:保证表中数据引用的完整性。

      a.创建主键约束:主键列值必须非空且唯一,并且一个表有且只有一个主键。 
        方式一:

           create table stu (
              sid varchar(10) primary key,  
           sname varchar(20)
    ); 

        方式二:

      create table stu (
           sid varchar(10),  
           sname varchar(20),
           primary key(sid)
    ); 

        方式三: 先创建表,然后修改表添加主键
     create table stu (
           sid varchar(10),  
           sname varchar(20)
    ); 
    alter table stu add primary key(sid);

    主键自增:auto_increment

    create table stu(
      sid int primary key auto_increment,
      sname varchar(20)
    
    );

    b.非空约束:not null 
    方式一:

     create table stu(
       sid int,
       sname varchar(20) not null
    );

    方式二:alter table stu modify sname varchar(20) not null;

    c.唯一约束:unique

    create table stu(
       sid int,
       sname varchar(20) unique
    );
    alter table stu add address varchar(30) unique;

    d.外键约束:foreign key

    方式一:

     create table dept(
    deptno int,
    deptname varchar(20),
    primary key(deptno)
    );
    
    
    create table emp(
      eid int,
      ename varchar(20),
      e_d_no int,
      primary key(eid),
      foreign key(e_d_no) references dept(deptno)
    );

    方式二: 
    先定义表结构,然后修改表添加主键和外键(比较常用)

     create table emp(
      eid int,
      ename varchar(20),
      e_d_no int
    );
    
     create table dept(
    deptno int,
    deptname varchar(20)
    );

    修改主表,添加主键

    alter table dept add primary key(deptno);

    修改从表,添加外键引用

    alter table emp add foreign key(e_d_no) references dept(deptno);
    12、DML语句:对表数据的增删改

    相关命令:insert update delete 
    1. 向表中插入数据: 
    语法:insert into 表名(用逗号分隔的列名列表) values(使用逗号分隔的每列的数据列表); 
    如:

      insert into stu(sid,sname,age,gender) values('M_001','tom',23,'male');

    2.修改表数据: 
    update 表名 set 列名=新值,列名=新值…… [where 子句]; 
    如:

      update stu set sname=’jack’;

    3. 删除表中的数据 
    使用delete删除表数据 
    语法: delete from 表名 [where 子句]; 
    如:delete from stu;

    使用truncate删除表数据: 
    语法:truncate [table] stu;

    delete和truncate区别 
    delete逐条删除数据(性能较低) 
    truncate(截断表):首先执行drop table删除表结构, 然后再执行create table创建表结构。性能较优。

    DQL操作 
    命令只有select 
    语法:

    SELECT selection_list /*要查询的列名称*/
      FROM table_list /*要查询的表名称*/
     [ 
     WHERE condition /*筛选数据行的条件*/
      GROUP BY grouping_columns /*对结果分组*/
      HAVING condition /*分组后的筛选行的条件*/
      ORDER BY sorting_columns /*对结果排序*/
    ]

    注:[…] 代表可选,而不是语句中有[] 。

    0.基本查询:

    select  *  from stu;  /*查询所有列*/
    select sname,age from stu;  /*查询指定列*/
    13、条件查询 

    运算符:

    • =、!=、<>、<、<=、>、>=;
    • BETWEEN…AND;
    • IN(set);
    • IS NULL;
    • AND;
    • OR;
    • NOT;

    a.查询年龄大于35岁的人的姓名和年龄

      select sname,age from stu where age>35;

    b.查询年龄在15和35岁的人的姓名和年龄

    select sname,age from stu where age between 15 and 35;

    c.查询年龄等于25、35、45岁的人的信息

      select * from stu where age in(25,35,45);

    d.查询没有填写性别的人的信息

     select * from stu where gender is null;

    e.查询年龄大于35岁的男性的信息

      select * from stu where age>35 and gender=’male’;

    f.查询年龄大于35岁的信息

    select * from stu where age>35; 

    g.查询性别不为空的人的信息

    select * from stu where gender is not null;

    2.模糊查询

    模糊查询的通配符: 
    % 表示任意数量的字符 
    _ 表示任意一个字符 
    模糊查询的关键词:like

    a.查询名字是字母z开头的人

     select * from stu where sname like 'z%';

    b.查询名字包含b字母的人

    select * from stu where sname like '%b%';

    c.查询名字包含n字母其n字母前只有两个字符的人

     select * from stu where sname like '__n%';

    以下查询使用emp表 
    14.列别名 
    使用as关键字为列定义别名,另外,该关键字可以省去

              select ename as '名字', sal  as '月薪' from emp e;
              select ename '名字', sal  '月薪' from emp e;

    4.排序 
    desc降序 asc升序(默认值) 
    查看雇员的月薪,并进行排序

     select ename, sal  as  'sal' from emp  order by  sal desc;

    15、聚合函数

    聚合函数是用来做纵向运算的函数:

    • COUNT():统计指定列不为NULL的记录行数;
    • MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
    • MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
    • SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
    • AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

      注意:聚合函数只返回一个结果

    a.查询emp表中月薪大于2500的人数:

         select count(*) from emp where sal>2500;

    b.统计所有员工平均工资:

    select avg(sal) from emp;

    16、多表查询

    笛卡尔积查询:

    select * from emp,dept;

    消除笛卡尔积: 
    内连接(等值连接)

     select * from emp e,dept d where e.deptno=d.detpno;
  • 相关阅读:
    C#在winform上实现关于treeview与listview结合项目应用
    C#自学总结_Day2
    Base64 替换 BASE64Encoder
    MySql添加用户
    C#多线程服务,控制最大线程并发和最小线程并发
    C#/.net 移除URL上指定的参数,不区分参数大小写
    C#.NET根据数据库中0,1返回对应代表含义“男”,“女”等问题
    d3 学习记录-----network实现
    c#判断串口是否断开,并自动重连
    winform Anchor和Dock属性
  • 原文地址:https://www.cnblogs.com/selinaniur/p/9667056.html
Copyright © 2020-2023  润新知