zoukankan      html  css  js  c++  java
  • SQL语法

    SQL语法

    2019-08-21

    1.数据库操作

    数据库的操作主要是指对文件夹的操作;常规的增删改查中,数据库有其中的3个,分别为查,增,删。

    1.1查数据库(浏览文件夹)

    show databases;

    1.2新增数据库

    create database 数据库名;

    常用的数据库需要增加对中文的支持,一般如下所示:

    create database 数据库名 default charset utf8;

    1.3删除数据库

    drop database 数据库名;

    1.4使用数据库(进入文件夹)

    use 数据库名;

    2.表操作

    表操作即对数据库内的文件进行操作,也符合查,增,删。

    2.1查询表

    show tables;

    2.2新增表

    最简单的表述:

    create table 表名(
            列名1 类型,
            列名2,类型)default charset  = utf8;

    使用MySQL的innodb引擎可以支持事务操作,即支持出错回滚机制

    create table 表名(
            列名1 类型,
            列名2,类型)engine=innodb default charset  = utf8;

    表内的列加上”auto_increment“表示此列自增,此时此列还必须加上”primary key“,表示此列为主键;

    primary key:可以加速查找,不能为空且不能重复,可以作为一行的唯一标识,一个表只能有一个主键,一个主键可以由一列生成,也可以由多列组合生成;

    列名后加上”null“表示此列可以为空,加上”not null“表示不能为空,不写时默认为”not null“

    create table 表名(
            列名1 类型 null,
            列名2 类型 not null,
            列名3 类型 not null auto_increment primary key,
            )engine=innodb default charset  = utf8;

    2.3删除表

    drop table 表名;

    3.表内数据操作

    3.1表内信息的查看

    可以按照列名查看,中间通过逗号隔开,也可以通过*查看全部;

    其中查看的方式有很多种;最简单的是无条件的查看:

    select 列名1,列名2 from 表名;
    select * from 表名;

    加上条件的查看:

    select * from 表名 where 条件语句;
    select * from t1 where id < 10

    在条件语句中还有一些常规的操作;比如查看指定的几行或不看指定的几行

    select * from t1 where id in (1,3,4,7);
    select * from t1 where id not in (1,3,4,7);
    select * from t1 where id in (select id from t2);

    指定两个行之间的数据

    select * from t1 where id between 行号1 and 行号2;

    模糊查找:

    使用通配符进行比配,这里有两个通配符“%”和“_”,此时关键次用like

    "%a"代表所有以a结尾的数据,“a%”代表所有以a开头的数据,“%a%”代表所有包含字母a的数据;

    “_a”代表前面只有一个字符且以a结尾的数据,····

    select * from 表名 where 列名 like%a”;

    分页取数据,使用关键词limit;

    只有一个数字时表示取前面几个,有两个数字时,第一个数字代表开始取的位置,第二个数字代表取出数据的条数;

    select * from 表名 limit 10;
    select * from 表名 limit 0,10;

    排序

    使用order by关键字,desc代表降序排列,asc代表升序排列;如果有多个排序,首先按照前面的排序进行排列,如果遇到相同的再用后面的排序方法排列

    例如取后10条数据

    select * from 表名 order by 列名 desc limit 10;

    多个排序

    select * from 表名 order by 列名 desc 列名2 desc;

    3.2插入数据

    增加一行数据

    insert into 表名(列名1,列名2) values(内容1,内容2);

    增加多行数据

    insert into 表名(列名1,列名2) values(内容1,内容2),(内容3,内容4)···;

    将另一个表的内容复制到表中

    insert into 表名(列名1,列名2) select 列名1,列名2 from 表名2;

    3.3修改数据

    一种是修改整个表中的数据

    update 表名 set 列名=数据;
    比如:
    update t1 set age=18;

    另一种是有条件的修改,其中条件语句可以使用“or”或“and”形成复合条件语句

    update t1 set age=18 where age=17;
    将t1表中age等于17的数据全改为18

    3.4删除数据

    清空表,有两种方法,delete方法清空表内容,但是不清除自增列的信息,下次增加数据时依然按照之前自增的值顺序开始,速度较慢,可以加条件语句进行判断;

    truncate同时会清除自增的信息,下次再添加数据会从1开始自增。

    delete from 表名;
    delete from 表名 where 条件语句;
    truncate table 表名;

    4.一个完整操作程序

     1 show databases;
     2 create database db1 defalut charset utf8;
     3 use db1;
     4 show tables;
     5 create table t1(
     6         age int null,
     7         name char(10) not null,
     8         id int not null auto_increment primary key9         )engine=innodb default charset  = utf8;
    10 select name,age from t1;
    11 insert into t1(name,age) values("crat",22);
    12 insert into t1(name) values("scll");
    13 select * from t1;
    14 delete from t1;
    15 select * from t1;
    16 drop table t1;
    17 show tables;
    18 drop database db1;
    19 show databases;
  • 相关阅读:
    Arctic Network POJ
    Journey CodeForces
    Free Goodies UVA
    MU Puzzle HDU
    Balance POJ
    1sting 大数 递推
    最大报销额 暴力。。
    洛谷P2826 LJJ的数学课
    2018年12月29日
    2018年12月28日
  • 原文地址:https://www.cnblogs.com/sienbo/p/11390448.html
Copyright © 2011-2022 走看看