zoukankan      html  css  js  c++  java
  • 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也是这些数据库系统的基础。


       
       

  • 相关阅读:
    webbrowser获取页面文章指定段落内容
    webbrowser防止弹窗(IE)
    webbrowser模拟手动输入
    WPF加载Winform窗体时 报错:子控件不能为顶级窗体
    FAQs: 我们可以在那里来为我的没有提升管理权限的应用程序存储用户数据?
    Winform中修改WebBrowser控件User-Agent的方法(已经测试成功)
    必应代码搜索 Bing Code Search 安装
    Microsoft Visual Studio Professional 2012 专业版 下载
    vs2012 aspx 没有设计视图了?
    vs2010 Express 下载连接
  • 原文地址:https://www.cnblogs.com/simone-wenwen/p/4087337.html
Copyright © 2011-2022 走看看