您的位置:新葡亰496net > 网络数据库 > 新葡亰496netmysql常用言语,sql语法小结

新葡亰496netmysql常用言语,sql语法小结

发布时间:2019-08-02 13:04编辑:网络数据库浏览(69)

    SQL 对大小写不灵敏!

    ////再次学习sql语法结构,巩固在此以前的基础,首要结合asp.net
    1.Sql是大大小小写不灵动的言语,类似是SELECT和select是一律的

    一、对数据库的操作

    #### 成立数据库

    create datebase mydatabase;

    show database;

    多少操作语言 (DML):

    2.Sql 能够分为两部分,数据操作语言(DML)和数目定义语言(DDL)

    1.创设贰个库

    -- create database 库名
    create database person;

    #### 删除数据库

    drop database mydatabase;

    #### 使用数据库

    use mydatabase;

    select - 从数据库表中获取数据

    3.sql结构化查询语言,
    DML:
    select --从数量表中获取数据
    update --更新数据表中的多寡
    delete --从数额表中删除数据
    insert into --向数据表中插入数据
    DDL:
    create database --创造新的数据库
    alter database --修改数据库
    create table --创造数据表
    alter table --退换数据表
    drop table --删除数据表
    create index --创设一个目录
    drop index --删除一个目录

    创造带有编码的数据库

    -- create database 库名 character set 编码
    create database userdb character set utf8;

    #### 创设数量表格式

    create table 表名(

    列名  数据类型 约束,

    列名  数据类型 约束,

    列名  数据类型 约束

    update - 更新数据库表中的多少

    4.实际的语法
    1>select 列名称 from 表名称 /select * from 表名称(查询全数的列)
    2>使用distinct关键字,能够去除重复的查询行/select distinct 列名称 from 表名称
    3>select 列名称 from 表名称 where 列 运算符 值
    运算符有:= <> > < >= <= between 在有些范围 like找寻某种情势/select * from person where city='法国首都'/Sql中运用单引号来围绕文本值(一大二分之一据库系统也支撑双引号),数值不用引号
    4>and 和or能够将where子语句中把多少个只怕多少个尺码构成起来。/select * from person where firstname='张三' or secondname='李四'
    5>order by desc降序/asc升序。能够依靠某一列对结果集结排序展现 /select 列名1,列名2,列名3 from 表名 order by 列名1,列名2 asc(会先依照最前边的列排序,当有同样的景色再按第二列排序)
    6>insert into 语法。insert into 表名称 values(值1,值2,...)/insert into 表名称(列名1,列名2,...)values(值1,值2,...)
    7>update 用于修改表中的数据 /update 表名称 set 列名=新值 where 列名=某值
    update person set firstname='张三' where lastname='李四'
    履新一行中的若干列项 update person set address ='henan',city='中夏族民共和国' where name='张三'
    8>数据表中的数据行的删除 delete/ delete from 表名称 where 列名称=值
    也足以去除全体行 delete from 表名称

    查看编码

    show create database userdb;

    开创用户表,用户号码,姓名,用户的地址

    create table users(

    uid INT PRIMARY KEY AUTO_INCREMENT ,

    uname VARCHAR(20),

    uaddress VARCHAR(200 ),

    主键:标志独一性,不抱有任何意义,保障列数据的独一性和非空性 primary keys

    让主键列数据完成活动增进

    SHOW TABLES 显示全部数据表

    DESC users  查看表的组织

    DROP tables users 删除数据表

    delete - 从数据库表中删除数据

    2.删减贰个库

    -- drop database 库名
    drop database person;

    加多列,增多字段

    alter table 表名 add 列名 数据类型 约束

    ALTER TABLE users ADD tel INT

    修改列,在原有的列上修改

    修改列名,数据类型 约束

    alter table 表名 modify 列名 数据类型 约束

    alter table users modify tel varchar(50)

    insert into - 向数据库表中插入数据

    3.使用库

    -- use 库名
    use userdb;

    修改列名

    alter table 表名 change 旧列名 新列名 数据类型 约束

    alter table users change tel newtel double

    数量定义语言 (DDL):

    4.查看当前正在操作的库

    select database();

    删除列

    alter table 表名 drop 列名

    alter table users drop newtel;

    create database - 创立新数据库

    二、对数码库表的操作

    修改表名

    rename table 表名 to 新名

    rename table users to newusers;

    alter database - 修改数据库

    1.创造一张表

    -- create table 表名(
    -- 字段名 类型(长度) [约束],
    -- 字段名 类型(长度) [约束],
    -- 字段名 类型(长度) [约束]
    -- );
    create table uPerson(
    uid int(32) primary key auto_increment,
    uname varchar(32),
    upassword varchar(32),
    uscore varchar(32)
    );

    向数据表中添扩张少 insert

    格式:

    insert into 表名(列名1,列名2,列名3) values (值1,值2,值3)

    注意:

    列名,表名难题

    对应难题,个数,数据类型

    除此而外数字外都要加单引号

    create table product(

    --主键列,自动增加

    id INT PRIMARY KEY AUTO_INCREMENT

    --商品名字,可变字符

    pname VARCHAR(100) NOT NULL,

    -- 商品价位,double

    prince DOUBLE

    );

    INSERT INTO product (id,pname,price) values (1,'笔记本',555.59)

    丰硕数据格式,不思考主键

    格式:insert into 表名 (列名) values (值)

    insert into product(pname,price) values('洗衣机',800)

    累加数码格式,全数值全给出

    格式:

    insert into 表名 values (全列值)

    insert into produce values (4,'微波炉',300.25)

    丰裕数量格式,批量写入

    insert into 表名 (列名1,列名2,列名3) values(值1,值2,值3),(值1,值2,值3)

    insert into product (pname,price) values

    ('智能手机器人',25555.92)

    ('沙发',555.23)

    对数码进行更新操作

    create table - 成立新表

    2.查看数据库表

    多少在原本基础上进展修改

    格式:

    update 表名 set 列1=值1,列2=值2 where 条件

    where 条件:数据中的独一性

    update product set price = 155599 where id=2

    修改规范的写法

    id=6

    id<>6 不等于

    id<=6

    与或非

    与 and

    或 or

    非 not

    id in (1,3,4,5) 包含

    将台式机和中央空调整价格格总体制改正为三千

    update product set price = 2000 where id =2 or id=2

    删除表中的数目

    格式:

    delete from 表名 where 条件

    drop table 表名 删除全部数据表

    delete from product where id=8

    alter table - 退换(改换)数据库表

    创设完毕后,大家得以查看数据库表

    show tables;

    乱码 set names 'gbk'

    询问钦赐列的数额

    格式:

    select 列名,列2 from 表名;

    询问全数列的多寡

    格式:

    select * from 表名;

    询问去掉重复记录

    distinct 关键字 跟随列名

    select distinct zname from zhangwu

    询问重新命名列

    as 关键字

    select zname as 'name' from zhangwu

    查询数据中,直接开始展览数学计算

    列对数字进行测算

    select zname,zmoney 1000 as 'sum' from zhangwu

    询问全部吃饭支出

    select * from zhangwu where zname='吃饭支出'

    between and 方式

    select * from zhangwu where zmoney between 2000 and 5000

    drop table - 删除表

    查看表的构造

    -- desc 表名
    desc userdb;

    in 方式

    select * from zhangwu where zmoney in (2000,5000)

    create index - 成立索引(寻觅键)

    3.剔除一张表

    -- drop table 表名
    drop table userdb;

    like 模糊查询,合作通配符

    select * from zhangwu where zname like '%支出%'

    查询帐务名字,八个字符的 ,下划线

    select * from zhangwu where zname like '_____'

    查询帐务不为空

    is not null

    查询,对结果集进行排序

    deop index - 删除索引

    查阅数据库表

    show tables;

    升序,降序,对点名列排序

    order by 列名 [desc][asc]

    升序 asc 降序 desc

    select * from zhangwu order by zmoney

    select * from zhangwu order by zmoney desc

    ----先过滤条件,where查询结果再排序

    select  * from zhangwu where zname like '%支出%' order by zmoney desc

     查

    4.修改表

    动用聚合函数举行测算

    count 求和,对表中的数码个数求和 count(列名)

    select count(*)as 'count' from zhangwu

    sum 求和

    分组总括:

    查询全部数据

    用餐支出 共计多少

    薪俸收入 共计多少

    select 列名称,列名称 from 表名称

    修改表名

    rename table userdb to user_db;

    group by 被分组的列名

    非得跟随聚合函数

    select 查询的时候,被分组的列,要现身的select选拔列的前边

    select sum(zmoney),zname from zhangwu group by zname

    提示:星号(*)是选用全数列的急迅格局。

    4.1增多一列

    -- alter table 表名 add 字段名 类型(长度) [约束]
    alter table user_db add uinfo varchar(32)

    分组后再度过滤

    having

    select sum(zmoney) as 'getsum' ,zname from zhangwu zname like '%支出%'

    group by zname

    having getsum>5000

    distinct 重返独一不一致的值:select distinct  列名称 from 表名称

    4.2退换列的项目(长度、约束)

    -- alter table 表名 add 字段名 类型(长度) [约束]
    alter table user_db modify uinfo varchar(100) null;

    where(有规范地从表中精选数据):select  列名称 from 表名称 where 列 运算符 值(用单引号来围绕文本值,数值不应用引号)

    4.3修改列的列名

    -- alter table 表名 change 旧列名 新列名 类型(长度) [约束]
    alter table user_db change uinfo info varchar(32) null;
    alter table user_db change upassword upwd varchar(32) null;

    操作符 = <>(!=) > < >= <= between link
    描述 等于 不等于 大于 小于 大于等于 小于等于 在某个范围内 搜索某种模式
    4.4删除表的列

    -- alter table 表名 drop 列名
    alter table user_db drop info;

     

    4.5改变表名

    -- rename table 表名 to 表名
    rename table user_db to tbl_user;

                                        

    4.6修改表的字符集

    alter table 表名 character set utf8;

    and 和 or

    翻开当前表的编码

    show create table tbl_user;

    select  列名称 from 表名称 where 列 运算符 值 and 列 运算符 值

    三、对数据库表记录实行操作(修改)

    select  列名称 from 表名称 where 列 运算符 值 or 列 运算符 值

    1.插入记录

    -- insert into 表名(列名1,列名2,列名3……) values(值1,值2,值3……)
    insert into tbl_user(uid,uname,upwd,uscore) values(1,'张王三','12233','65');
    insert into tbl_user(uid,uname,upwd,uscore) values(2,'李四','12234','76');
    insert into tbl_user(uid,uname,upwd,uscore) values(3,'王五','12235','86');
    insert into tbl_user(uid,uname,upwd,uscore) values(4,'赵六','12236','62');
    -- insert into 表名 values(值1,值2,值3……)
    insert into tbl_user values(5,'王一','1111','91');

    select  列名称 from 表名称 where 列 (运算符 值 and 列 运算符 值) or 列 运算符 值

    1.1 插入数据普通话乱码难点解决办法

    办法一:创立表的时候一向设置好编码为utf8
    方式二:【不建议!】
    一向退换数据库安装目录里面的my.ini文件的第57行
    方式三:set names gbk;

    order by排序(升序) desc 降序

    2.修改表记录

    2.1不带条件的-改变表中存有的记录
    update 表名 set 字段名=值 ,字段名=值.....
    update tbl_user set upwd=123456;
    2.2带条件的
    update 表名 set 字段名=值,字段名=值..... where 条件
    update tbl_user set upwd=1122334 where uid = 2;

    select  列名称 from 表名称 order by 列名称(按那排序)

    3.删除表记录

    3.1 带条件的
    delete from 表名 where 条件
    delete from tbl_user where uid=1
    瞩目,删除后,uid不会重新恢复设置!
    3.2不带条件的
    先绸缪点数据
    insert into uperson values (1,'来来来','szs','12');
    insert into uperson values (2,'来来来','sys','48');
    insert into uperson values (3,'ww1','szt','28');
    insert into uperson values (4,'szss','srs','53');
    insert into uperson values (5,'来qqq','uos','56');

    select  列名称 from 表名称 order by 列名称(第一排序),列名称(第二排序)

    去除操作

    delete from 表名;
    delete from uperson;

    3.3面试题
    新葡亰496net,说说delete与truncate的区别?
    delete删除的时候是一条一条的删减记录,它特出职业,能够将去除的数量找回。
    truncate删除,它是将全数表摧毁,然后再成立一张千篇一律的表。它删除的多寡不可能找回。
    Delete操作演示:
    start transaction ;
    delete from uperson;
    rollback;
    Truncate操作演示
    start transaction;
    truncate table uperson;
    rollback;
    show tables;
    专注:delete删除,uid不会复位!而选取truncate操作,uid会重新恢复设置

    select  列名称 from 表名称 order by 列名称(第一排序)desc(降序),列名称(第二排序)asc(升序)

    4.询问操作

    语法
    select [distinct]*|列名,列名 from 表名 [where 条件]

    4.1大致询问

    insert into 表名称 values (值1,值2...)    //插入行数据

    1.询问全部用户

    select *from tbl_user;

    insert into 表名称(列名称,列名称...) values (值1,值2...)    //插入列数据

    2.询问名字分数

    select uname,uscore from tbl_user;

    3.查询名字使用表小名

    -- select * from tbl_user as(as可省略) u;
    select * from tbl_user as u;

    新葡亰496netmysql常用言语,sql语法小结。update 表名称 set 列名称 = 新值 where 列名称 = 某值

    4.询问姓名,使用别称 as可归纳

    select uname as u from tbl_user;

    update 表名称 set 列名称 = 新值,列名称 = 新值 where 列名称 = 某值

    5.去掉重复值(遵照密码)

    select distinct(upwd) from tbl_user;

    6.将全部人的分数 10 突显

    select uid ,uname,uscore 10 from tbl_user;

    delete from 表名称 where 列名称 = 值

    4.2尺码查询

    delete from 表名称/delete * from 表名称   //在不删除表的情景下删除全部的行

    1.查询名字为"王五"的新闻

    select * from tbl_user where uname='王五';

     

    2.询问分数大于80的新闻

    select * from tbl_user where uscore>80;

    top:规定要回去的记录的数码

    3.查询含有“王” 字的新闻

    select * from tbl_user where uname like '%王%';

    select top 数字 列名称 from  表名称

    4.查询id在(3,5)范围的消息

    select * from tbl_user where uid in(3,5);

    select top 50 percent 列名称 from  表名称  //取二分之一的数额,单数则多取一条

    5.询问含有“王” 而且id为5 的消息

    select * from tbl_user where uname like '%王%' and uid=5;

    link:在 WHERE 子句中寻觅列中的钦命形式  not

    6.查询uid 为2或者5的信息

    select * from tbl_user where uid =2 or uid =5;

    select * from 表名称 where 列名称 link '字母%'   //以字母开首

    4.3排序

    升迁:"%" 可用以定义通配符(情势中缺点和失误的假名)

    1.询问所用用户 根据分数(升序降序)

    -- 升序 select * from 表名 order by 要升序的列名 asc;
    select * from tbl_user order by uscore asc;
    -- 降序 select * from 表名 order by 要降序的列名 desc;
    select * from tbl_user order by uscore desc;

    select * from 表名称 where 列名称 link '%字母'   //以字母结尾

    2.查询带“王”字的用户 并依照分数降序排序

    select * from tbl_user where uname like '%王%' order by uscore desc;

    select * from 表名称 where 列名称 link '%字母%'   //满含字母(可三个)

    4.4聚合函数

    select * from 表名称 where 列名称 not link '%字母%'   //不分包字母(可三个)

    1.获得全部学不熟悉数的总和

    select sum(uscore) from tbl_user;

    通配符 描述
    % 替代一个或多个字符
    _ 仅替代一个字符
    [charlist] 字符列中的任何单一字符
    [^charlist]  或者 [!charlist] 不在字符列中的任何单一字符
    2.获取全部学不熟悉数的平平均数量

    select avg(uscore) from tbl_user;

     

    3.到手全体学员的个数

    select count(*) from tbl_user;

     

    4.5分组操作

     

    1. 更具uid 分组

    select uid ,count(*) from tbl_user group by uid;

     

    2.更具cid分组,总计每组的分数值

    select cid,avg(uscore) from tbl_user group by uscore having avg(uscore)>>70;

     

    4.6 查询总括

    select 一般在的后边的内容都以要查询的字段
    from 要查询到表
    where
    group by
    having 分组后含有条件只可以使用having
    order by 它必须置于最前面

    select * from tbl_user;

    select * from uperson;

    select * from 表名称 where 列名称 link '字母_字母_字母'

    select * from 表名称 where 列名称 link '[字母1字母2字母3]%'   //从表中挑选列以 "字母1" 或 "字母2" 或 "字母3" 开始的

    in:允许大家在 WHERE 子句中鲜明七个值

    select * from 表名称 where 列名称 in (值1,值2...)

    between... and:选择介于四个值时期的数据范围 not

    select * from 表名称 where 列名称 between 值1 and 值2  //介于 "值1"(包括)和 "值2"(不包括)之间

    select * from 表名称 where 列名称 not between 值1 and 值2  

     

    本文由新葡亰496net发布于网络数据库,转载请注明出处:新葡亰496netmysql常用言语,sql语法小结

    关键词: