澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

澳门新萄京官方网站:sql语法小结,mysql常用言语

2019-08-03 作者:数据库网络   |   浏览(111)

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;

####澳门新萄京官方网站:sql语法小结,mysql常用言语。 使用数据库

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中应用单引号来围绕文本值(一大58%据库系统也支持双引号),数值不用引号
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) 包含

将台式机和空气调节器整价格格总体制更始为2000

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面试题
说说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;

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  

 

本文由澳门新萄京官方网站发布于数据库网络,转载请注明出处:澳门新萄京官方网站:sql语法小结,mysql常用言语

关键词:

  • 上一篇:没有了
  • 下一篇:没有了