zoukankan      html  css  js  c++  java
  • sql语法总结

    SQL:结构化查询语句
    1.不区分大小写
    2.每条语句以;结尾
     
    SQL语句分为:
    DDL:数据库定义语言,用来创建数据库,创建表格等 
    DML:数据库管理语言,增,删,改,查语句等
    DCL:数据库操作语言,如修改数据库系统权限
     
    DDL
    1.查看数据库
    show databases;
     
    2.创建数据库
    create database school(数据库名称)
     
    3.删除数据库
    drop database school(数据库名称)
     
    4.使用数据库
    use school(数据库名称)
     
    5.查看数据库中的表格
    show tables;
     
    6.新建表格
    create table 表格名称(
    字段1  数据类型(长度) 缺省值,
    字段2  数据类型(长度) 缺省值,
    ...
    字段n  数据类型(长度)
    )
    create table student(
    id int(5) primary key,
    name varchar(10) ,
    sex varchar(2),
    age int(3),
    grade double
    )
    数据类型
    int:整型
    varchar:可变字符串,如果字符串的长度少于定义的长度以实际长度为准
    char:字符串,如果字符串的长度少于定义的长度以空格填充
    double(float):浮点型
    primary key:主键,主键不能重复,并且不能为空
    不能超过定义数据类型的长度
     
    7.查看表格结构
    desc student(表格名称);
     
    8.删除表格
    drop table student(表格名称);
     
    9.修改表格的结构
    增加字段
    alter table student add classid int(2);
     
    删除字段
    alter table student drop classid;
     
    修改字段
    alter table student change classid classid int(3);
     
    DML语句:数据库管理语言(增,删,改,查)
    1.增加一条记录
    全字段添加
    insert into student(表格名称) values(111,'zs','男',30,90,1);
    指定字段添加
    insert into student(id,name,age) values(112,'ls',40);
     
    2.修改记录  可以and和or
    update student(表格名称) set sex='女',grade=80,classid=3 where id=112;
     
    将姓名为ww或者age为40的学生的成绩改为70  
    update student set grade=70 where name='ww' or age=40;
     
    3.删除记录
    delete from student(表格名称) where id=110;删除id为110的记录
     
    delete from student where grade>=70;删除成绩大于或者等于70的记录
     
    delete from student where id=111 and age=20;删除id为111并且年龄为20的记录
     
    4.查询数据
    查询所有数据
    select * from student(表格名称)
     
    查询年龄大于30的记录 > >= < <= and or
    select * from student where age>30;
     
    select * from student where age>40 and age<50;年龄在40到50之间的
     
    select * from student where age between 40 and 50;//40到50之间的记录,包括边界值
     
    select name,age from student where classid=1;//查询1班人的名字和年龄
     
    select * from student where classid=1 and sex='男';//查询1班并且性别为男的
     
    组函数
    count(*) 计数 avg max min
    select count(*) 人数 from student;//查询学生的数量并取个别名
     
    select avg(grade) avg_grade from student;//查询学生成绩的评价值
     
    模糊查询 %:代表匹配0个或者多个任意字符 _:匹配0个或者1个字符
    select * from student where name like '%s%';//查询名字中有s字符的记录
     
    select * from student where name like '_z%';//查询名字中z前面有0个或者一个任意字符,后面多个任意字符
     
    排序 order by
    select * from student order by grade;默认升序排序  asc 升序 desc 降序
     
    分组查询group by
    //查询各个班级的平均成绩
    select avg(grade) 平均成绩,classid from student group by classid;
     
    子句查询
    查询成绩小于平均成绩的人
    select * from student where grade<(select avg(grade) from student);
     
    sql不够严谨
    1.字符串单引号和双引号都可以用
    2.数字字符串和数字之间可以自动转换
    insert into student(id,name) values('234','sdg');//不报错
    insert into student(id,name) values('23a4','sdg');//报错
     
     
    mysql支持limit
    select * from tablename limit 0,1
     
    即取出第一条记录
    select * from tablename limit 1,1
    第二条记录
     
    select * from tablename limit 10,20
    从第11条到31条(共计20条)
     
     
    从student表中查询计算机系和英语系的学生的信息
    (in 关键字)
    mysql> SELECT * FROM student WHERE department IN ('计算机系','英语系');
     
    +-----+--------+------+-------+------------+--------------+
     
    | id | name | sex | birth | department | address |
     
    +-----+--------+------+-------+------------+--------------+
     
    | 901 | 张老大 | 男 | 1985 | 计算机系 | 北京市海淀区 |
     
    | 904 | 李四 | 男 | 1990 | 英语系 | 辽宁省阜新市 |
     
    | 905 | 王五 | 女 | 1991 | 英语系 | 福建省厦门市 |
     
    | 906 | 王六 | 男 | 1988 | 计算机系 | 湖南省衡阳市 |
     
    +-----+--------+------+-------+------------+--------------+
     
     
     
  • 相关阅读:
    蓝盾杯writeup
    记一次被吊打的排位赛(writeup)
    记一次简单的PHP代码审计(SSRF案例)
    记一次简单的GetShell案例
    斯坦福cs231n计算机视觉经典课程笔记(更新中)
    centos8 下配置 uwsgi + Django
    C++坑点随笔
    matlab调教日记 ---- 语法问题汇总
    matlab调教日记 --- debug篇
    MySQL解决中文编码问题
  • 原文地址:https://www.cnblogs.com/hangaozu/p/7544466.html
Copyright © 2011-2022 走看看