• SQL(一)


    参考原文:http://www.w3school.com.cn/sql/sql_select.asp

    一、

    使用navicat premium软件登录mysql数据库,按 ctrll +f6,可使用sql语句查询数据库数据。

    查询服务器上所有的数据库:show databases;

    使用数据库:use raw_database;

    查询数据库中的表格: show tables;

    查询表格结构:desc ds_adver_num;show create table ds_adver_num; 前一条命令的输出显示更美观。

    二、

    基础命令

    1.select

    2.distinct

    3.where
    (1)可以在where子句中使用的运算符:
    = 等于,<> 不等于(或者使用!=),><大于小于,>= <=大于等于小于等于,between...and... 在某个范围内,like

    搜索某种格式。
    (2)like的用法:
    select * from table1 where 列名 like'....';
    '....'中''之间的格式有:1_2 1和2开头,且中间只有一个字符;
                            1%,1开头的字符串;
                             %1,1结尾的字符串;
                            %12%,包含‘12’的字符串。

    4.and,or
    用来连接一个以上的筛选条件,可使用()来组合and 和or的使用。

    5.order by(排序查看)
    select * from table1 order by 列名 desc; 按降序排列,sql默认的排列顺序是升序。
    select * from table1 order by 列名1 desc,列名2 ; 按照列名1降序排,如果列名1相同,则按照列名2升序排。
    sql中varchar、datetime、bigint这三种类型的数据都可以拿来升序和降序排序。

    6.insert into (在表格中添加一行数据)
    insert into table1 values ('列1值','列2值',...) 向table1中插入一行数据。插入的这一行数据在每一列都有值。注意:括号中要插入的值要加单引号。
    insert into table1 (列1,列3) values ('列1值','列3值') 向table1中插入一行仅在列1和列3有值的数据。

    7.update(在表格中修改一行数据)
    update table1 set 列1 ='...' where 列2='ABC'; 更改table1中列2为ABC的这一行的列1内容为...
     注:也可以同时修改多列的值。但是where 后面的 列2='ABC'必须能唯一确定一行。

    8.delete(在表格中删除一行数据)
    delete from table1 where 列1='ABC'; 通过列1唯一确定一行后,讲该行删除。
    delete from table1; 在不删除表的情况下删除表格的所有行。表格的结构、属性和索引都还是完整的。

    9.通配符
    (1)% 替代一个或对个字符;
    (2)_ 仅替代一个字符;
    (3)[...] 替代字符列中的任一单一字符,如,select * from table1 where 列1 like '[...]%'; 表示从table1中选出以[]中任一字符开头的行。
    (4)[!...] 不替代字符列中任一单一字符,如,select * from table1 where 列1 like '[!...]%'; 表示从table1中选出不以[]中任一字符开头的行。

    10.in(求两个语句查询结果的交集或者非重叠部分)
      in在where子句中使用,扩展了= 的用法。
      如,select * from table1 where 列1 in ('列A','列B','列C'); 选择列1的值为列A,列B,列C的行。

    注意: in 可求两个语句查询结果的交集。如,select ID from A where ID in (select ID from B);

             not in 可用于求两个语句查询结果的不同部分。如,select * from A where ID not in (select ID from B);

    11.between
      (1)在where子句中使用,与and搭配。between A and B, 其中,A和B可以是数字、日期,也可是文本(英文文本,

    则按照字母排序。)
      (2)显示区间之外的数据,可使用 not between ... and ...
      (3)区间的开闭情况依不同的数据库而不同。

    12.create view
      (1)
       建立视图: create view table1 as xxxxxx;  其中xxxxx部分可以是任意一个选出来的表格。
       删除视图: drop view table1;
      (2)
    注意:1.在视图中的修改,如删除、插入、更改等操作,会直接影响原表!

    13.别名 alias
       主要是用于简化查询。可以对列或者表适用别名。

    14.在数据库中建立表格
    (1)明确该数据库使用的数据类型;
    (2)进入数据库。使用use database1;进入数据库,在此数据库中建立表格;
    (2)创建表格:create table test_table(name varchar(12),ID int(11),num int(11),add varchar(12));
    (3)添加一行数据:insert into (目前只会一行一行的手动添加数据。)
    (4)修改一行数据:update
    (5)删除一行数据:delete
       注意:如果要删除某一列的数据,则相当于修改了整个表的结构,很可能造成很多后续问题,如关联等。列的删

    除应该在设计表格结构时就尽量避免。故此类操作需谨慎!

    15.删除数据库中的表格
    (1)删除表格,包括表的结构、属性和索引:drop table table1;
    (2)清空表格中的数据:truncate table table1;

    16.多表查询
    (1)直接select (用于主键可以连接两张表的联合查询)
    如:select name , A.ID , num , sum from test_table , A where test_table.ID = A.ID;
       注意:使用了别名。
    (2)inner join (用于主键可以连接两张表的联合查询)
    如:select test_table.name , A.sum from A inner join test_table on A.ID = test_table.ID;
    (3)left join
    left join 会从左表返回所有的行,即使右表中没有匹配的行。用法、规则与inner join相同。
    (4)right join
    right join 会从右表返回所有的行,即使左表中没有匹配的行。用法、规则与inner join相同。
    (5)full join
    会从两张表返回所有的行,即使两张表中没有匹配的行
    但是如下命令在mysql数据库中使用报错:
    select B.name , A.sum from A full join B on A.ID = B.ID ;

    17.union
    格式:
    语句1 union 语句2
    结果:
    将两个语句的查询结果求并集。
    注意:
    故要求两个查询语句拥有相同数量的列,列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须

    相同。
    union all与union唯一的区别在于,后者求并集,而前者会包括重复的查询结果。

    18.MySQL不支持Select Into语句直接备份表结构和数据。

    19.日期计算
    (1)在一个日期上加日期:
    select date_add('2014-11-18' , interval 3 day/week/month/year);
    (2)在一个日期上减日期:
    select date_sub('2014-11-18' , interval 3 day/week/month/year);

    20.建立数据库
    语句格式:create database database1;

    21.删除数据库
    语句格式:drop database database1;

    22.constraints 限制加入表的数据的类型
    (1)not null
    该约束强制列不接受null值。在创建表格的时候使用。如,create table test_table(name varchar(12) not

    null,ID int(11),num int(11),add varchar(12));
    (2)unique
    (3)primary key 主键
    主键唯一标识表中的每条记录(主键包含唯一的值);
    主键不能包含null值;
    每张表都应该有且只有一个主键。
    (4)foreign key
    一个表的foreign key指向另一个表的primary key;
    (5)check
    用于限制列中的值得范围。如,create table test_table(name varchar(12) not null,ID int(11),num int

    (11),add varchar(12),check (ID > 10));
    (6)default

    23.给表格的列创建索引

    24.删除数据库、表格、清空表格数据(保留表格的创建)、删除表格的索引。

    25.使用alter添加、修改和删除表格的某一列
    (1)修改列的数据类型:
    alter table table1 alter column column1 datatype;
    (2)添加一列:
    alter table table1 add column1 datatype;
    (3)删除一列:
    alter table table1 drop column column1;
    删除列的操作需谨慎!

    26.创建auto-incement字段
    (1)含义
    用于插入新纪录时不必为主键列规定值(会自动添加一个唯一的值),默认auto-increment序列的开始值是1,每条新

    纪录递增1.
    (2)语法示例:
    create table B2(name varchar(12),ID int(11) not null auto_increment,num int(11), primary key (ID));
    将ID列作为主键。在插入数据时不必再为主键列添加数据,insert into B2 (name, num) values ('a',1);主键列自

    动从1开始生成。
    (3)让主键从其他值开始:ALTER TABLE Persons AUTO_INCREMENT=100

    27.日期
    (1)日期统一作为字符串类型的数据;
    (2)表格中日期后如果接了时间,那么在筛选的时候,...time = '2014-11-27'...这样的筛选时选不出数据的。
    (3)日期计算函数:date_add('2014-11-18',interval 3 day/week/month/year)
                     date_sub('2014-11-18',interval 3 day/week/month/year)

    28.null-遗漏的未知数据
    含义:如果表的列是可选的,则该列的值可以存放null
    注意:无法使用比较运算符(=,<,>)来测试null,只能使用is null 和not null .
    使用举例:
    (1)select * from A where ID is not null;
    (2)select * from A where ID is null;
    (3)如果某一列的值为null则不利于计算,可以使用ifnull(列1,0)函数将列1中为null的项返回为0.

    29.数据类型

    30.SQL的基础是relational database management system , RDBMS.
    数据库系统有oracle , sql server,mysql,sybase,access(microsoft),DB2(IBM).
    RDBMS也是这些数据库系统的基础。


       
       

  • 相关阅读:
    Oracle 函数
    Oracle select into from 和 insert into select
    SQL 子查询
    Java ThreadLocal 学习
    Structs 2
    Spring知识点
    java循环HashMap两种方法的效率比较
    Spring 面试复习
    Hibernate 知识点复习
    java 面试 复习 II
  • 原文地址:https://www.cnblogs.com/simone-wenwen/p/4087337.html
Copyright © 2020-2023  润新知