zoukankan      html  css  js  c++  java
  • mysql sql语句

    1.数据库和表的操作

    创建 create
    修改 alter
    删除 drop
    查看 show

    1.1创建数据库

    CREATE DATABASE [IF NOT EXISTS] db_name    [create_specification [, create_specification] ...]

    create_specification:    

    [DEFAULT] CHARACTER SET charset_name 

    [DEFAULT] COLLATE collation_name

    CHARACTER SET:指定数据库采用的字符集

    COLLATE:指定数据库字符集的比较方式(校对规则)

    1.创建一个名称为mydb1的数据库
    create database mydb1;
    2.创建一个使用utf-8字符集的mydb2数据库。
     create database mydb2 character set utf8;
    3.创建一个使用utf-8字符集,并带校对规则的mydb3数据库。
    create database mydb3 character set utf8 collate utf8_general_ci;

    1.2 查看删除数据库

    显示数据库语句:

    SHOW DATABASES

    显示数据库创建语句:

    SHOW CREATE DATABASE db_name

    数据库删除语句:

    DROP DATABASE  [IF EXISTS]  db_name

    1.查看当前数据库服务器中的所有数据库
    show databases; 
    2.查看前面创建的mydb2数据库的定义信息
    show create database mydb2;
    3.删除前面创建的mydb3数据库
    drop database mydb3;

    1.3 修改,备份、恢复数据库

    ALTER  DATABASE  [IF NOT EXISTS] db_name [alter_specification[,alter_specification] ...]

    alter_specification:   

     [DEFAULT] CHARACTER SET charset_name 

     [DEFAULT] COLLATE collation_name

    备份数据库表中的数据

      mysqldump -u 用户名 –p密码 数据库名 > 文件名.sql

    恢复数据库

      Source 文件名.sql

    1.把其中mydb2的字符集修改为gbk
    alter database mydb2 character set gbk; 

    1.4 创建表

    CREATE TABLE table_name

    (

      field1  datatype,

      field2  datatype,

      field3  datatype

    )character set charsetname collate collatename

    field:指定列名 datatype:指定列类型

     
    MySQL基本数据类型

    分类

    数据类型

    说明

    数值类型

    BIT(M)  bit  bit(8)

    TINYINT [UNSIGNED] [ZEROFILL]  byte

    BOOL,BOOLEAN   boolean

    SMALLINT [UNSIGNED] [ZEROFILL] short

    INT [UNSIGNED] [ZEROFILL] int

    BIGINT [UNSIGNED] [ZEROFILL] long

    FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]  float

    DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL] double

    位类型。M指定位数,默认值1,范围1-64

    带符号的范围是-128到127。无符号0到255。

    使用0或1表示真或假

    2的16次方

    2的32次方

    2的64次方

    M指定显示长度,d指定小数位数

    表示比float精度更大的小数

    文本、二进制类型

    CHAR(size) char(20)  max—255   abc           

    VARCHAR(size)  varchar(20) 65535   abcde String

    BLOB   LONGBLOB  大的二进制数据

    TEXT(clob)          LONGTEXT(longclob)  大文本数据

    固定长度字符串

    可变长度字符串

    二进制数据

    大文本

    时间日期

    DATE/DATETIME/TimeStamp

    日期类型(YYYY-MM-DD)  (YYYY-MM-DD HH:MM:SS),TimeStamp表示时间戳,它可用于自动记录insert、update操作的时间

    VARCHAR、BLOB和TEXT类是变长类型。
    注意:创建表前,要先使用use db语句使用库。
    显示数据库中的所有表 show tables
     1.创建一个person表
     create table person(name varchar(20),age int);
    1.5 修改表

    ALTER TABLE table ADD (column datatype [DEFAULT expr] [, column datatype]...);

    ALTER TABLE table MODIFY  (column datatype [DEFAULT expr][, column datatype]...);

    ALTER TABLE table DROP (column);

     1.为person添加一个account列
     alter table person add account int;
    2.CRUD
    Insert语句    (增加数据)
    Update语句  (更新数据)
    Delete语句   (删除数据)
    Select语句 (查找数据)
    2.1 使用 INSERT 语句向表中插入数据

    INSERT INTO tablename [(column [, column...])]VALUES  (value [, value...]);

    插入的数据应与字段的数据类型相同
    数据的大小应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中。
    在values中列出的数据位置必须与被加入的列的排列位置相对应。
    字符和日期型数据应包含在单引号中。
    插入空值,不指定或insert into table value(null)  // “”
     
    2.2 使用 update语句修改表中数据

    UPDATE tbl_name SET col_name1=expr1 [, col_name2=expr2 ...][WHERE where_definition]  

    UPDATE语法可以用新值更新原有表行中的各列。
    SET子句指示要修改哪些列和要给予哪些值。
    WHERE子句指定应更新哪些行。如没有WHERE子句,则更新所有的行。
    2.3 使用 delete语句删除表中数据。

    delete from tbl_name  [WHERE where_definition] 

    如果不使用where子句,将删除表中所有数据。
    Delete语句不能删除某一列的值(可使用update
    使用delete语句仅删除记录,不删除表本身。如要删除表,使用drop table语句。
    删除表中数据也可使用TRUNCATE TABLE 语句,它和delete有所不同,原理是先删除表再创建新表。
     
    Select语句比较复杂所以在下一节讲解
    3.Select语句
    3.1基本select语句

    SELECT [DISTINCT] *|{column1, column2. column3..} FROM  table;

    Select 指定查询哪些列的数据。
    column指定列名。
    *号代表查询所有列。
    From指定查询哪张表。
    DISTINCT可选,指显示结果时,是否剔除重复数据
    create table student(
        id int,
        name varchar(20),
        chinese float,
        english float,
        math float
    );
    
    insert into student(id,name,chinese,english,math) values(1,'张小明',89,78,90);
    insert into student(id,name,chinese,english,math) values(2,'李进',67,53,95);
    insert into student(id,name,chinese,english,math) values(3,'王五',87,78,77);
    insert into student(id,name,chinese,english,math) values(4,'李一',88,98,92);
    insert into student(id,name,chinese,english,math) values(5,'李来财',82,84,67);
    insert into student(id,name,chinese,english,math) values(6,'张进宝',55,85,45);
    insert into student(id,name,chinese,english,math) values(7,'黄蓉',75,65,30);
    练习:
    查询表中所有学生的信息。
    查询表中所有学生的姓名和对应的英语成绩。
    过滤表中重复数据
    3.2select语句2
    在select语句中可使用表达式对查询的列进行运算

    SELECT*|{column1expression, column2expression..}FROM  table;

    select语句中可使用as语句

    SELECT column as 别名 from 表名;

    练习
    在所有学生分数上加10分特长分。
    统计每个学生的总分。
    使用别名表示学生分数。
    3.3where子句
    where子句中经常使用的运算符

    比较运算符

    >   <   <=   >=   =    <>

    大于、小于、大于(小于)等于、不等于

    BETWEEN  ...AND...

    显示在某一区间的值

    IN(set)

    显示在in列表中的值,例:in(100,200)

    LIKE ‘张pattern’

    模糊查询

    IS NULL

    判断是否为空

    逻辑运算符

    and   &

    多个条件同时成立

    or    |

    多个条件任一成立

    not   !

    不成立,例:where not(salary>100);

    Like语句中,% 代表零个或多个任意字符,_ 代表一个任意字符,例first_name like ‘_a%’;

    练习:
    查询姓名为李一的学生成绩
    查询英语成绩大于90分的同学
    查询总分大于200分的所有同学
    查询英语分数在 8090之间的同学。
    查询数学分数为89,90,91的同学。
    查询所有姓李的学生成绩。
    查询数学分>80,语文分>80的同学。
    查询英语>80或者总分>200的同学
    3.3使用order by 子句排序查询结果

    SELECTcolumn1, column2. column3..FROM  table order by column asc|desc

    Order by 指定排序的列,排序的列即可是表中的列名,也可以是select 语句后指定的列名。
    Asc升序、Desc降序

    ORDER BY 子句应位于SELECT语句的结尾。

    3.4合计函数count

    Select count(*)|count(列名) from tablename [WHERE where_definition] 

    3.5合计函数sum

    Select sum(列名){,sum(列名)…} from tablename   [WHERE where_definition]

    3.6合计函数AVG

    Select avg(列名){,avg(列名)…} from tablename [WHERE where_definition]  

    3.7合计函数AVG

    Select max(列名) from tablename  [WHERE where_definition]

    资料

    http://www.w3school.com.cn/sql/index.asp

  • 相关阅读:
    hdu 1251(字典树)(3种方法)
    HDU 2203(KMP算法)
    九度oj 题目1335:闯迷宫
    poj3894 bfs+记录路径
    状压dp--P2704
    状压dp--洛谷P2622
    动态规划--牛客多校number
    完全背包
    01背包--hdu
    莫比乌斯反演模板--Gym 101982B
  • 原文地址:https://www.cnblogs.com/malinkang/p/3335346.html
Copyright © 2011-2022 走看看