当前位置:文档之家› (完整word版)SQL常用的增删改查语句、视屏笔记

(完整word版)SQL常用的增删改查语句、视屏笔记

(完整word版)SQL常用的增删改查语句、视屏笔记
(完整word版)SQL常用的增删改查语句、视屏笔记

SQL:结构化查询语言,是国际化标准组织采纳的标准数据库语言

作用:数据库管理员可以用利用次语言操作数据库系统,即:SQL是一种能够被数据库系统读懂的操作语言。

T—SQL是微软公司针对SQL Server这种关系数据库所定义的一种SQL语言,用户可以完成Server数据库中的所有操作。

SQL的分类:

(1):数据定义语言,DDL

用来创建数据库和数据库中的各种对象

数据库中的对象包括:表、视图、索引、存储过程、触发器

DDL常用的命令包括:create、alter、drop

(2):数据操纵语言,DML

可以完成对数据库中数据的查询、更新、删除、插入的功能

DML常用的命令包括:select、update、delete、insert

(3)数据控制语言,DCL

DCL常用的命令包括:grant、revoke、deny

(4)数据类型

1、数字数据类型

a、整型数据类型:bigint、int、smallint、tinyint

b、浮点数据类型:float、real

c、固定精度数据类型:decimal、numeric

d、货币数据类型:money、smallmoney

将数据格式转换成字符串方法:STR(ID);---ID为数据类型,STR(ID)为字符串

2、字符数据类型:varchar、char、text、nchar、nvarchar、ntext

区别char和varchar数据类型:

char数据类型是存放固定长度的字符

Varchar数据类型是存放动态长度的字符

char(14),实际放入到数据库的字符长度为14个字符,如果实际存储的长度小于定义的长度,那么数据库会在次字符串后面加上3个空格

1、insert语句:

insert语句是属于SQL语言中的DML

作用:为表插入数据

你向一个表中插入一条新记录,但有一个字段没有提供数据。在这种情况下,有下面的四种可能:

1、如果该字段有一个缺省值(默认值),该值会被使用。

2、如果该字段可以接受空值,而且没有缺省值,则会被插入空值。

3、如果该字段不能接受空值,而且没有缺省值,就会出现错误。你会收到错误信息:

The column in table mytable may not be null.

4、如果该字段是一个标识字段,那么它会自动产生一个新值。当你向一个有标识字段的表中插入新记录时,只要忽略该字段,标识字段会给自己赋一个新值。

使用INSERT语句可向文本型字段中插入数据。但是,如果你需要输入很长的字符串,你应该使用WRITETEXT语句。

语法:insert into 表名(列名1,列名2,…..) values(值1,值2,….)

注意:(列名1,列名2,…..)可以不写,这样的话,插入的values(值1,值2,….)中的值必须包含表中的所有列,不然会报错。

把INSERT 语句与SELECT 语句结合起来,可以添加多个记录。像这样:

代码:INSERT mytable (first_column,second_column)

SELECT another_first,another_second

FROM anothertable WHERE another_first=’Copy Me!’

这个语句从anothertable拷贝记录到mytable.只有表anothertable中字段another_first的值为’Copy Me!’的记录才被拷贝。

2、update语句它也是属于SQL语句中的DML, 可以修改表的数据,使用WHERE子句来选择更新特定的记录。

需要更新很长的字符串,应使用UPDATETEXT语句。如果你不提供WHERE子句,表中的所有记录都将被更新。

语法:update 表名 set 列名1=值1,列名2=值2,……..[where 条件….] update student set sage=20 where sno=’s014’----修改一列

update student set sage=20,set ssex=’女’ where sno=’s014’

----修改多列逗号隔开

3、delete语句也是属于SQL语句中的DML

作用:可删除表中的一行或多行,在SQL SELECT 语句中可以使用的任何条件都可以在DELECT 语句的WHERE子句中使用。删除应该表中的所有记录,应使用TRUNCATE TABLE语句。

语法:delete from 表名[where 条件….]

delete from student----删除表student中所有数据

delete from student where sno = ‘s014’----删除表student中编号是014的一行

delete from student where sno >= ‘s013’--删除表student中编号大于等于013的行

4、建立索引

Create INDEX index_name ON table_name (column_name)

说明:对某个表格建立索引后,数据库会对相应列进行自然排序,以增加查询时的速度。4、基本查询技术:

数据库中提供一种可以将表中的数据查询出来的技术,称为select查询

select查询技术的基本语法格式

select [列名1,列名2,…..] | from 表名1,表名2

[where 条件]

[group by分组的列名]

[having聚合函数比较操作]

[order by 排序的列名]

(1)查询语句中的“*”号代表将表中的列全部显示出来

select * from student

(2)如果只想在查询中显示某一列用:

select sno sname sage from student

注意:“*”和列名只能够二选一,不能够同时出现

(3)在查询的时候可以为表或者列定义别名

A:为列定义别名

select sno as 学号 ,sname as 姓名 from student

或:select ‘学号’=sno, ‘姓名’=sname from student

B:为表定义别名

select sno sname sage ssex from student a

好处:当出现多张表联系起来作查询的时候,如果多张表中含有相同的列名的时候,为表定义别名使得查询比较方便

例如:想查询课程是由哪些老师就是讲授的。

从课程course表和老师teacher表中查找车tno列相同的数据

select cname, tname, from course a , teacher b

where a.tno = b.tno

(4)distinct关键字

此关键字是为了去掉列中重复的值, 对于所有重复的数据行在SELECT返回的结果集合中只保留一行。

select distinct sno from sc

(5)order by排序(默认升序)

语法:order by 列名[desc | asc]

desc:代表降序排列

asc 代表升序排列

select *from student order by sname

如果不写排序关键字,默认的是升序

select *from student order by sname desc

(6)where关键字使用

Where作为查询筛选结果的一个过程(非常重要)

语法:where 条件1[or | and] [条件2]…

条件1可以包括以下内容:

Where 列名1 列名2 | 数值

(7)top n限制返回的行数

使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT 时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。

例如:

代码:SELECT TOP 2 * FROM `testtable`

代码:SELECT TOP 20 PERCENT * FROM `testtable`

条件表达式分类:

1、比较条件:

(>:大于 <:小于 >=:大于等于 =<:小于等于 <>:不等于 =:登于)

例如:找学生年龄大于23岁的同学信息

select *from student where sage>23

2、逻辑条件

(and:与运算 or:或运算 not:非)

逻辑操作的用法:

Where 条件1条件2

例如:查找课程编号大于’c002’的课程由哪些老师讲授

sSelect *from teacher ,course where teacher.tno = course.tno and https://www.doczj.com/doc/4511906871.html,o > ‘c002’

例如:查找选修了课程’c002’,或者成绩大于70的学生有哪些

select sname , sage , cno ,score from student a , sc b

where a.sno = b.sno and (cno=’c002’ or score>70)

例如:not关键字的使用:

select *from sc where score not between 70 and 80

3、in关键字

它是要求查询的结果在某几个值里面

select *from sc where score not in(70,90,80)

select *from course where cno in (‘c001’,’c002’,’c005’)

in还可以应用到子查询中

select *from sc where sno

in (select sno from student where sno >= ‘s002’)

4、like关键字

like是作为SQL模糊查询比较常用的一个技术,在like关键字使用中提出两

个比较特殊的符号

%:0个或多个任意字符

_:任意一个字符

例如:a、查找学生表中姓“陈”的同学

select * from student where sname like ‘陈%’

b、查询学生表中名字是三个字的学生信息

select * from student where sname like ‘___’----‘内三下

杠’

思考题:如果一个列中的内容含有下划线,要去用like来查找含有下划线的信息,该怎么做?

在SQL模糊查询中提供了一个escape(逃离、躲避、转移)关键字,它作为转义符使用

select *from student where sname like ‘%$_%’ escape ‘$’

“$”是定义的转移符号,那么在$符号后面的下划线不再是like中的特殊符

号,而是一个普通字符

5、all关键字

6、any关键字

7、between…and 关键字

5、聚合函数:只能对表中的数字类型进行计算,其他类型报错

max、min、count、avg、sum

max函数使用:select max(sage) from student----求学生表中最大的年龄

min函数使用:select min(sage) from student-----求学生表中最小的年龄

count函数使用:

select count (*)from student

select count (sno)from student

count(*):可以计算包含null列的记录数

count(列名):记录总记录数的时候,不去计算null值

avg函数的使用:select avg(sage) from student-----求学生表中的平均年龄

sum函数的使用:select sum(sage) from student-----求学生表中的年龄和

6、group by子句,它是一个分组函数,可以对某一列相同的值进行分组并求出相应的结果。

语法:

Select 列名1 [,列名2….] from 表名 group by 列名1[,列名2…]

例如:求学生表中男女生的总数

Select ssex ,count(ssex) from student group by ssex

例如:求不同老师总共讲授的课程的总数

A.两张表的查询teacher,course

B.对不同的老师进行一个分组

C.分组后求课程的总数

Select t.tno , tname , count(cno) from teacher t , course c

where t.tno = c.tno group by t.tno , tname

groyp by 执行原理、注意事项:

a.先根据group by 后的列名进行分组

b.然后根据count(列名)中的列名进行统计

c.group by子句经常和聚合函数一起使用

d.在使用group by的时候,如果查询的列没有包含在聚合函数中,那么该列一定要出现

在group by子句后面

7、having子句使用

having子句的作用非常重要,它是对聚合函数的值可以进行比较的操作。Having 必须放在group by 子句的后面。

例如:查询讲两门课以上的老师信息

Select t.tno , tname , count(cno) from teacher t , course c

Where t.tno = c.tno group by t.tno , https://www.doczj.com/doc/4511906871.html, having count(cno) >=2

创建表的语法

creat table 表名(

列名_1 数据类型约束条件

列名_2 数据类型约束条件

……………………

注意:如果定义的表中有多个列,那么需要以英文逗号”,”隔开;

表名和列名不能是SQL语言中的关键字

Numeric(p,n)

P代表数字类型的精度,插入数据的的最大长度。整数位多了会报错

n代表小数点后面的位数。小数后的位数长度超过n为会四舍五入

creat table A_2(

a_no numeric(5,2) //最大长度为5位,小数点后为两位,

)

insert into A_2 (a_no) values (789.298) //789.30

insert into A_2 (a_no) values (7890.28) //报错

插入日期类型

creat table A_3(

a_date datatime

)

insert into A_3 values (‘2011-04-02’)

查询表:

select *from 表名

select *from A_2

1、SQL链接查询

含义:复杂的SQL查询是基于多张表以上的查询,就必须考虑多张表的连接查询

是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。

SQL链接查询的分类:

等值链接外连接交叉链接

等值链接:

两个SQL语句:

第一个:select tname , cname from teacher t , course c where t.tno = c.tno

第二个:select tname , cname from teacher t inner join course c on t.tno=c.tno

查询学生所选的课程的分数,要求跟上学生的姓名:

select a.sno , sname , https://www.doczj.com/doc/4511906871.html,o , cname , score from student a

sc b , course c where a.sno = b.sno and https://www.doczj.com/doc/4511906871.html,o = https://www.doczj.com/doc/4511906871.html,o

注意:第二个SQL语句是SQL 92/SQL 99的写法,这种写法叫做连接查询中的内连接形式

外连接:包括:左外链接、右外连接、完全链接

外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行。

使用外连接需要一些关键字:

left outer join on (左外连接)

right outer join on (右外连接)

full outer join on (完全连接的写法)

例子:select *from 表1 left outer join 表2 on 表1.列名=表2.列名

creat table R(

a varchar(5)

b varchar(5)

c varchar(5) ) creat table S(

c varchar(5)

d varchar(5) )

left outer join的含义:除了满足查询条件的结果显示出来,还需将left outer join 左侧表中没有匹配的数据显示出来

外连接实战应用:

1、查询所有同学的学号、姓名、选课数、总成绩

如果没有选课的学生信息,是否也要打印出来作为统计数据

select a.sno , sname , count(cno) , sum(score)

from student a left outer join sc c

on a.sno = c.sno group by a.sno , sname

2、查询不同老师所教不同课程的平均分

select t.tno , tname , https://www.doczj.com/doc/4511906871.html,o , avg(score) from course c

left outer join sc on https://www.doczj.com/doc/4511906871.html,o = https://www.doczj.com/doc/4511906871.html,o group by https://www.doczj.com/doc/4511906871.html,o , t.tno , tname

right outer join的含义:除了满足查询条件的结果显示出来,还需将right outer join 右侧表中没有匹配的数据显示出来

1、查询所有同学的学号、姓名、选课数、总成绩

如果没有选课的学生信息,是否也要打印出来作为统计数据

select a.sno , sname , count(cno) , sum(score) from sc c

right outer join student a

on a.sno = c.sno group by a.sno , sname

2、查询不同老师所教不同课程的平均分

select t.tno , tname , https://www.doczj.com/doc/4511906871.html,o , avg(score) from sc

right outer join course c on https://www.doczj.com/doc/4511906871.html,o = https://www.doczj.com/doc/4511906871.html,o

group by https://www.doczj.com/doc/4511906871.html,o , t.tno , tname

full outer join的含义:就是左外连接和有外链接结果的和

select *from R full outer join on S on R.c = S.c 连接操作中的ON (join_condition) 子句指出连接条件,它由被连接表中的列和比较

运算符、逻辑运算符等构成。

无论哪种连接都不能对text、ntext和image数据类型列进行直接连接,但可以对这三种列进行间接连接。例如:

代码:SELECT p1.pub_id,p2.pub_id,p1.pr_info

FROM pub_info AS p1 INNER JOIN pub_info AS p2

ON DATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info)(一)内连接

内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。SQL的子查询

1、where子查询

select cno , score from sc where score > (select avg (score) from sc)

where子查询后面的条件允许写select语句,那么这个限制条件(“>”符号)后的查询称为子查询。

2、from子查询

结构:select *from 表名1 , (select *from 表名2)

例如:查询每个学生的课程、成绩、总平均分

select cno , score , https://www.doczj.com/doc/4511906871.html, from sc,(select avg(score) as cc from sc)

b

where sc.

虚表命名为b,查询出来的平均分命名为cc

在from关键字后面出现的查询句子,我们可以让他单独的作为一张虚表。

3、in子查询

它是要求查询的结果在某几个值里面

select *from sc where score not in(70,90,80)

select *from course where cno in (‘c001’,’c002’,’c005’)

in还可以应用到子查询中

select *from sc where sno

in (select sno from student where sno >= ‘s002’)

4、any子查询

>any:大于最小的

=any:就是关键字in的作用

select * | 列名1 , 列名 , 列名2….from 表名 where 列名 >any 比较条件(子查询) select * | 列名1 , 列名 , 列名2….from 表名 where 列名

select distinct a.sno , sname from student a , sc b

where a.sno = b.sno and b.sno >70

and a.sno > any (select sno from sc where score > 70)

5、all子查询

语法格式:

select * | 列名1 , 列名 , 列名2….from 表名 where 列名 >all 比较条件(子查询) select * | 列名1 , 列名 , 列名2….from 表名 where 列名 all:大于子查询结果中最大的数据

=all:没有任何数据

Select * from student where sno > all(select sno from sc where score >70)

6、嵌套子查询

7、exists子查询

允许查找特定条件的行,exists后面总是跟一个子查询,只要只查询返回了行,exists 的值就为true。

例:查询返回在任何一次考试中分数低于40分得学生studentID和姓名

select studentID , name from student s where exists

(select studentID from studentExam e Where mark<40 and e.studentID = s.studentID);

这里的基础是一个相关子查询返回分数低于40分得学生的studentID:

select studentID from studentExam e Where mark<40

对student表中的每一行只执行一次

and e.studentID = s.studentID

修改表:

修改表的时候一般有如下操作:

1、修改表中的数据类型

2、为表添加列

3、删除表中的列

4、为表添加约束

5、删除表的约束

第一种:为表添加列

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

alter table emp add e_address varchar(20) default’成都’ //声明后面插入的数据的地址默认为成都,即约束为成都

insert into emp (empno,ename,depno)

values (1004,’李明’,2)

select * from emp //查询emp表格中的数据

第二种:删除表中的列

Alter table 表名 drop column 列名

alter table emp drop column e_address

注意:

1、如果在删除表中列的时候,一定要注意此列是否含有约束对象。如果有约束对

象,应先删除约束对象,再删除表中所对应的列。

2、删除表中的约束:

alter table 表名 drop constraint 约束名

alter table emp drop constraint DF_emp_e_address_00200768

3、删除约束的时候,约束名不要用单引号修饰。

第三种:修改表中列的数据类型

比如:增加varchar的长度

alter table 表名 alter column e_name varchar(25)

第四种:为表添加约束

作用:为了更好地保护数据库中数据的完整性,存储数据的一致性和正确性的一套机制。

alter table 表名 add constraint 约束名约束类型[约束表达式]

约束的分类:

在SQL Server2005中有6种约束:

主键约束(primary key constraint)

第1种主键约束定义:在创建表的时候定义主键约束:

Creat table A_1(

a_no int primary key,--此定义方式,系统会默认生成一个主键约束名称

a_name varchar(10)

)

--主键到底有什么用:

--1、一个列被定义成主键后,此列中的数据不能为NULL

--2、被定义成主键的列,其数据必须是唯一的

insert into A_1 values (1,’张三’)---第一个数字不能为null

insert into A_1 values (2,’李四’)---第一个数字不能和1重复

第2种主键约束的定义

creat table A_2(

a_no int ,

a_name varchar(10),

constraint PK_A_2 primary key (a_no)

)

第3种主键约束的定义

create table A_3(

a_no int,

a_name varchar(10)

)

---如果创建的表中某一列想定义为一个主键,

---必须满足一个前提条件,即该列不能为空

---如下:声明表A_3的a_no列不为空

alter table A_3 alter column a_no int not null

---如下:修改表A_3的a_no列为主键约束

alter table A_3 add constraint PK_A_3 primary key(a_no)

唯一性约束(unique constraint)

检查约束(check constraint)

如果要为表中的某一列定义一个规则,可以使用check约束。

例如:为表A的a_sex定义只能存放“男”或“女”

creat table A(

a_name varchar(10),

a_sex varchar(2) constraint ck_sex check(a_sex=’男’or a_sex=’女’)

)

insert into A (a_name,a_sex)

values (‘李四’,’女’)----true

values (‘李四’,’你’)---false

列约束实例:

creat table 会员(

No smallint not null constraint memberNoChk-----列约束是直接跟在后面

check(No between 1 and 10000),

name varchar(20) not null,

address varchar(60) not null

)

表约束实例:

creat table 我的会员(

No smallint not null,

name varchar(20) not null,

address varchar(60) not null,

constraint ChkmemberNo-----表约束是表的列写完后添加约束

check(No between 1 and 10000)

)

列约束与表约束的区别:列约束是直接跟在后面,而表约束则是表列项写完后添加约束外部键约束(foreign key constraint)

外键是指用于建立实体与实体之间关系,当添加、修改、删除数据的时候,他可以保持两张表的数据一致性。外键就是针对表与表的关系确立而设置的。

作用:

1、当插入数据的时候,如果数据在父表中找不到,我们的外键就阻止你进行一个插入操作。

2、保持两张表的数据一致性

外键的创建方式:

-------如何建立外键,即外键到底建立在哪张表中才是正确的

-------1、确立表之间的子父关系

-------2、外键一定是建在子表中的,且该外键是父表中的主键的那一列。

-------3、在创建表的时候就可以添加外键:将子表某列和父表主键关联起来

alter table 子表 add constraint FK_C foreign key (子表某列) references 父表(父表主键)

方法1,创建表的时候就定义

例如:A和B表是一对多的关系,那么A表称为父表,B表称为子表。为了体现子父关系,可以使用外键。

---emp,员工表

---dep,部门表

---员工表 VS 部门表===> n:1

Create table emp(---部门信息(子表)

empno int primary key,----员工编号

ename varchar(10),-----员工姓名

depno int foreign key references dep (depno)

)

create table dep(----部门信息(父表)

depno int primary key,----部门编号

dname varchar(10)---部门的名称

)

方法2,创建表的时候,自定义外键的名称

create table B(

b_no int primary key,

b_name varchar(10)

)

---B VS C 1:n

create table C(

c_no int primary key,

c_name varchar(10),

b_no int,

constraint FK_C foreign key (b_no) references B (b_no) )

方法3,创建外键约束的方法

create table B(

b_no int primary key,

b_name varchar(10)

)

create table C(

c_no int primary key,

c_name varchar(10),

b_no int,

)

alter table C add constraint FK_C foreign key (b_no) references B (b_no) 默认约束:dafault

Default可以为表在插入数据的时候,指定一个默认的值

creat table people(

p_id int primary key,

p_name varchar(20),

p_sex varchar(2) default ‘男’

constraint ck_people check (p_sex=’男’or 9_sex = ‘女’)-----检查约束

)

insert into people(p_id,p_name) values (1,’张三’)

空值(NULL)约束

1、完整性约束,包括:primary key、unique

完整性约束的基本语法格式:

[CONSTRAINT constraint_name(约束名)]<约束类型>,约束不指定名称时,系统会

给定一个名称

2、参照性约束,包括:foreign key

3、用户自定义约束,包括:check default

第五种:删除表中的约束

alter table 表名 drop constraint 约束名

alter table emp drop constraint DF_emp_e_address_00200768

删除表:

删除表的操作可使用:drop table 表名

在使用drop table 的时候,注意一点:如果有字符关系的表,且用了foreign key 进行约束,那么删除父表的时候,数据库会提示无法删除。

drop table people

日期函数:

A、获取当前系统时间

select getdate()

B、在当前系统时间上增加两天

第一种:select getdate()+2

第二种:使用dateadd()函数:它可以在向指定日期加上一段时间的基础上,返回

新的datetime值

语法结构:dateadd(datepart , number , date)

select dateadd(DD , 2 , getdate())----当前时间加两天;

其中:

datepart:对日期做怎样的增加,DD:天MM:月;YYYY:年;HH:小时

number:增加的量

date:日期类型的数据

C、对两个时间进行差值比较

datediff()函数

语法:datediff(datepart , start , end)

datepart:代表做差值的单位:年、月、日、时、分、秒

start:日期类型数据

end: 日期类型数据

select datediff (DD , getdate() , getdate()+5)

D、datepart:返回表示指定日期的某一部分

语法结构:datepart(datepart , date)

例如:返回当前系统的时间年份

select datepart(yyyy , getdate())----返回年份

除了datepart可以返回指定日期的某一部分,还可以用convert函数完成相应功能效果

convert()函数是把日期转换为新数据类型的通用函数

语法:convert(数据类型,要转换的数据,转换的格式)====》

convert (datatype,data,style)

例子1:当前日期格式转化为dd/mm/yy

select convert (varchar (10) , getdate() , 103)

例子2:当前日期格式转化为yyyy-mm-dd hh:mi:ss(24h)

select convert ( varchar (30) , getdate() , 120)

字符函数

1、len:求字符串长度

语法:len(字符串)

例子1、查询学生表中姓名的长度

select len(sname) , sname from student

例子2:查询学生姓名是3个字的信息

select *from student where len(sname) = 3

2、replace:字符串替换函数

语法:replace (‘String1’ , ‘String2’ , ‘String3’)

String1:要搜索的字符串表达式;String1可以是字符数据或二进制数据

String2:要查找的字符串表达式;String2可以是字符数据或二进制数据

String3:用于替换的字符串表达式;String3可以是字符数据或二进制数据

select replace(‘abcdefg’,’abc’,’$$$$$$$$’)----- $$$$$$$$defg

select sname replace(sname,sname,’###’) from student where len(sname)=3;

3、substring:求字符串子串函数

语法:substring(expression , start , length)

expression:是字符串、二进制字符串、文本、图像、列和包含列的表达式,不要

使用包含数据函数的表达式

start:指定字符串开始位置的整数,start可以为bigint类型

length:一个正整数,指定要返回的expression的字符数或字节数,如果length

为负。则会返回错误,length可以是bigint类型

例子1:返回从学生学号第2个字符到最后字符的信息

Select sno , substring(sno , 2 , len(sno)) from student

4、upper:将字符串转换为大写

语法:upper(字符串)

例子:select upper(‘abcdef’)---- ABCDEF

5、lower:将字符串转换为小写

语法:lower(字符串)

例子:select lower(‘ABCDEF’)----abcdef

6、rtrim: 去掉字符串右边的空格

语法:rtrim(字符串)

例子:select rtrim(‘abcdef ’)+’d’--------abcdefd

7、ltrim: 去掉字符串左边的空格

语法:ltrim(字符串)

例子:select ’d’ + ltrim(‘ abcdef’) --------dabcdef

7、charindex:求字符串中某个字符在整个字符串中的位置

语法:charindex(expression1 , expression2 [,start_location])

参数解释:

expression1:代表要查找的子串

expression2:代表原串

Start_location:查找的起始位置

例子1:求’abc’中’a’在整个字符串中的位置

select charindex(‘a’ , ‘abc’)

例子2:从第2位开始查找,’a’在’abcabc’中出现的位置

select charindex(‘a’ , ‘abc’ , 2)

视图的创建方法

1、可视化创建方法(即在对象管理器中创建)

2、通过create view命令来创建视图

create view的语法格式:

create view<视图名> [(<视图属性列表(列名)>)]

[with encryption] as <子查询>[with check option]

with encryption: SQL Server对包含create view语句的文本进行加密

with check option:强制视图上执行的所有数据更新语句都必须符合子查询中where子句的条件

例子:创建能够查看每个老师所教的课程的视图

create view t_view as select cno , cname , t.tno , tname

from course s , teacher t where https://www.doczj.com/doc/4511906871.html,o = t.tno

视图是基于多张表导出的一张表

select * from t_view

基本视图的修改:

如果要让视图进行一个插入操作,有时会影响基本的数据,但需要注意一下几点内容:

1、基于一张表的视图,可以对试图进行修改、更新、删除数据,则插入的数据会影响

到基表

create view t_student as select sno,sname,ssex from student where sno>’s005’

对视图插入数据

insert into t_student values (‘s014’,’李晓波’,’男’)----会影响基

修改视图中的数据

update t_student set ssex=’女’ where sno = ‘s014’ ----会影响

基表

2、如果生成的视图包含聚合函数、其它函数、distinct、group by、order by、into;

不能插入、更新、删除数据

create view t_student as select sno , ssex , count(ssex) coun

from student group by sno , ssex

3、如果生成的视图是由两张表以上的查询生成,不能进行插入。更新、删除数据。

Create view t_student as select a.sno , sname , https://www.doczj.com/doc/4511906871.html,o , cname

From student a, course b , sc c where a.sno = c.sno and https://www.doczj.com/doc/4511906871.html,o = https://www.doczj.com/doc/4511906871.html,o

4、如果生成的视图,含有with check option ,一定要满足查询条件(where的条件)

才能进行插入、更新、删除数据。

create view t_student as select sno , sname , sex

from student where sno<’s005’ with check option

insert into t_student values (‘s015’,’刘洋’,’女’)------报错sno

需小于s005才行

修改视图:

通过alter view 进行

例如:创建视图:

create view v_t4 as select *from teacher Where tno > ‘t004’with check option 查看已建视图创建脚本的命令

sp_helptext t_t4

会显示创建脚本:create view v_t4 as select *from teacher Where tno > ‘t004’with check option

修改上面的视图v_t4脚本为下:把with check option去掉

alter view v_t4 as select *from teacher where tno > ‘t004’

FROM子句

FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:

代码:SELECT username,citytable.cityid FROM usertable , citytable

WHERE usertable.cityid=citytable.cityid

在FROM子句中可用以下两种格式为表或视图指定别名:

代码:表名 as 别名

表名别名例如上面语句可用表的别名格式表示为:

代码:SELECT ‘username’, b.cityid FROM usertable a,citytable b

WHERE a.cityid=b.cityidSELECT

不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。例如:

代码:SELECT a.au_fname+a.au_lname FROM authors a,titleauthor ta

(SELECT ‘title_id’,’title’ FROM ‘titles’

WHERE ‘ ytd_sales’>10000) AS t

WHERE a.au_id=ta.au_id AND ta.title_id=t.title_id

此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。

UNION联合查询

UNION运算符可以将两个或两个以上的SELECT语句的查询结果集合合并成一个结果集合显示,即执行联合查询。

UNION的语法格式为:

代码:select_statement UNION [ALL] selectstatement

[UNION [ALL] selectstatement][…n]其中selectstatement为待联合的SELECT查询语句。ALL选项表示将所有行合并到结果集合中,不考虑重复元素。不指定该项时,被联合查询结果集合中的重复行将只保留一行。

联合查询时,查询结果的列标题为第一个查询语句的列标题。因此,要定义列标题必须在第一个查询语句中定义。要对联合查询结果排序时,也必须使用第一查询语句中的列名、列标题或者列序号。

在使用UNION 运算符时,应保证每个联合查询语句的选择列表中有相同数量的表达式,并且每个查询选择表达式应具有相同的数据类型,或是可以自动将它们转换为相同的数据类型。在自动转换时,对于数值类型,系统将低精度的数据类型转换为高精度的数据类型。在包括多个查询的UNION语句中,其执行顺序是自左至右,使用括号可以改变这一执行顺序。例如:查询1 UNION (查询2 UNION 查询3)

在集合中,两集合联合后将包含每个集合的数据成员,但每个数据成员只记录一次{1,2,3,4}intersect{3,4,5,6} ==={1,2,3,4,5,6}

交集:intersect返回交集

{1,2,3,4}intersect{3,4,5,6} ==={3,4}

差分:except返回不包含共同元素的集合

{1,2,3,4}except{3,4,5,6} ======{1,2,5,6}

二、数据类型:

smallint

16位元的整数。

interger

32位元的整数。

decimal(p,s)

p精确值和s大小的十进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数点後有几位数。如果没有特别指定,则系统会设为p=5; s=0

float

32位元的实数。

double

64位元的实数。

char(n)

n长度的字串,n不能超过254。

varchar(n)

长度不固定且其最大长度为n的字串,n不能超过4000。

graphic(n)

和char(n)一样,不过其单位是两个字元double-bytes,n不能超过127。这个形态是为了支援两个字元长度的字体,例如中文字。

vargraphic(n)

可变长度且其最大长度为n的双字元字串,n不能超过2000。

date

包含了年份、月份、日期。

time

包含了小时、分钟、秒。

timestamp

包含了年、月、日、时、分、秒、千分之一秒。

SQL语句增删改查

一、删:有2中方法 1.使用delete删除数据某些数据 语法:delete from <表名> [where <删除条件>] 例:delete from a where name='开心朋朋'(删除表a中列值为开心朋朋的行) 注意:删除整行不是删除单个字段,所以在delete后面不能出现字段名 2.使用truncate table 删除整个表的数据 语法:truncate table <表名> 例:truncate table tongxunlu 注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能用语有外建约束引用的表 二、改 使用update更新修改数据 语法:update <表名> set <列名=更新值> [where <更新条件>] 例:update tongxunlu set 年龄=18 where 姓名='蓝色小名' 注意:set后面可以紧随多个数据列的更新值;where子句是可选的,用来限制条件,如果不选则整个表的所有行都被更新 四、查 1.普通查询 语法:select <列名> from <表名> [where <查询条件表达试>] [order by <排序的列名>[asc或desc]] 1).查询所有数据行和列 例:select * from a 说明:查询a表中所有行和列 2).查询部分行列--条件查询 例:select i,j,k from a where f=5 说明:查询表a中f=5的所有行,并显示i,j,k3列 3).在查询中使用AS更改列名 例:select name as 姓名from a whrer xingbie='男' 说明:查询a表中性别为男的所有行,显示name列,并将name列改名为(姓名)显示 4).查询空行 例:select name from a where email is null 说明:查询表a中email为空的所有行,并显示name列;SQL语句中用is null或者is not null来判断是否为空行 5).在查询中使用常量 例:select name '唐山' as 地址 from a 说明:查询表a,显示name列,并添加地址列,其列值都为'唐山' 6).查询返回限制行数(关键字:top percent) 例1:select top 6 name from a 说明:查询表a,显示列name的前6行,top为关键字 例2:select top 60 percent name from a 说明:查询表a,显示列name的60%,percent为关键字 7).查询排序(关键字:order by , asc , desc)

数据库增删改查基本语句

数据库增删改查基本语句 adoquery1.Fielddefs[1].Name; 字段名 dbgrid1.columns[0].width:=10; dbgrid的字段宽度 adoquery1.Fields[i].DataType=ftString 字段类型 update jb_spzl set kp_item_name=upper(kp_item_name) 修改数据库表中某一列为大写select * from master.dbo.sysobjects ,jm_https://www.doczj.com/doc/4511906871.html,ers 多库查询 adotable1.sort:='字段名称ASC' adotable排序 SQL常用语句一览 sp_password null,'新密码','sa' 修改数据库密码 (1)数据记录筛选: sql="select * from 数据表where 字段名=字段值orderby 字段名[desc] " sql="select * from 数据表where 字段名like '%字段值%' orderby 字段名[desc]" sql="select top10 * from 数据表where 字段名orderby 字段名[desc]" sql="select * from 数据表where 字段名in('值1','值2','值3')" sql="select * from 数据表where 字段名between 值1 and 值2" (2)更新数据记录: sql="update 数据表set 字段名=字段值where 条件表达式" sql="update 数据表set 字段1=值1,字段2=值2……字段n=值n where 条件表达式" (3)删除数据记录: sql="delete from 数据表where 条件表达式" sql="delete from 数据表"(将数据表所有记录删除) (4)添加数据记录: sql="insert into 数据表(字段1,字段2,字段3…) values(值1,值2,值3…)" sql="insert into 目标数据表select * from 源数据表"(把源数据表的记录添加到目标数据表)

SQL数据库中的增删改查总结1

一、增:有2种方法 1.使用insert插入单行数据: 语法:insert [into]<表名> [列名] values <列值> 例:insert into Strdents (姓名,性别,出生日期) values ('邢金聪','男','1990/6/15') 注意:如果省略表名,将依次插入所有列 2.使用insert,select语句将现有表中的数据添加到已有的新表中 语法:insert into <已有的新表> <列名> select <原表列名> from <原表名> 例:insert into addressList ('姓名','地址','电子邮件')selectname,address,email from Strdents 注意:查询得到的数据个数、顺序、数据类型等,必须与插入的项保持一致 二、删:有2中方法 1.使用delete删除数据某些数据 语法:delete from <表名> [where <删除条件>] 例:delete from awhere name='邢金聪'(删除表a中列值为邢金聪的行) 注意:删除整行不是删除单个字段,所以在delete后面不能出现字段名 2.使用truncate table 删除整个表的数据

语法:truncate table<表名> 例:truncate table addressList 注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能 用于有外建约束引用的表 三、改 使用update更新修改数据 语法:update <表名> set <列名=更新值> [where <更新条件>] 例:truncate table addressList 注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能 用于有外建约束引用的表 四、查 1.普通查询 语法:select <列名> from <表名> [where <查询条件表达试>] [order by<排序的列 名>[asc或desc]] 1).查询所有数据行和列 例:select * from a 说明:查询a表中所有行和 2).查询部分行列--条件查询 例:select i,j,kfrom a where f=5 说明:查询表a中f=5的所有行,并显示i,j,k3列

mysql增删改查基本语句

mysql 增、删、改、查基本语句 数据库的链接和选择及编码 $link=mysql_connect("localhost","root","123456") or die("数据库连接失败".mysql_error()); $sel=mysql_select_db("login",$link) or die("数据库选择失败".mysql_error()); mysql_query("set names 'utf8'"); 添加数据 $link=mysql_connect("localhost","root","123456") or die("数据库连接失败".mysql_error()); $sel=mysql_select_db("login",$link) or die("数据库选择失败".mysql_error()); mysql_query("set names 'utf8'",$sel); $add="insert into title(title,content,username,time) values('$title','$content','$username',$time)"; $query=mysql_query($add); if($query){ echo "add sucess"; echo ""; } else echo "add false"; 删除数据 $link=mysql_connect("localhost","root","123456") or die("数据库连接失败".mysql_error()); $sel=mysql_select_db("login",$link) or die("数据库选择失败".mysql_error()); mysql_query("set names 'utf8'"); $id=$_GET['id']; $delete="delete from title where id='$id'"; $query=mysql_query($delete); if($query){ echo "delete sucess!"; echo ""; } else echo "delete false"; 改数据 $link=mysql_connect("localhost","root","123456") or die("数据库连接失败".mysql_error()); $sel=mysql_select_db("login",$link) or die("数据库选择失败".mysql_error()); mysql_query("set names 'utf8'",$sel);

数据库增删改查

02.连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 03.创建数据库:create database [库名] 04.显示所有数据库: show databases; 05.打开数据库:use [库名] 06.当前选择的库状态:SELECT DATABASE(); 07.创建数据表:CREATE TABLE [表名]([字段名] [字段类型]([字段要求]) [字段参数], ......); 08.显示数据表字段:describe 表名; 09.当前库数据表结构:show tables; 10.更改表格 11. ALTER TABLE [表名] ADD COLUMN [字段名] DATATYPE 12. 说明:增加一个栏位(没有删除某个栏位的语法。 13. ALTER TABLE [表名] ADD PRIMARY KEY ([字段名]) 14. 说明:更改表得的定义把某个栏位设为主键。 15. ALTER TABLE [表名] DROP PRIMARY KEY ([字段名]) 16. 说明:把主键的定义删除。 17.显示当前表字段:show columns from tablename; 18.删库:drop database [库名]; 19.删表:drop table [表名]; 20.数据操作 21.添加:INSERT INTO [表名] VALUES('','',......顺序排列的数据); 22.查询: SELECT * FROM [表名] WHERE ([条件]); 23.建立索引:CREATE INDEX [索引文件名] ON [表名] ([字段名]); 24.删除:DELETE FROM [表名] WHERE ([条件]); 25.修改:UPDATE [表名] SET [修改内容如name = 'Mary'] WHERE [条件]; 26. 27.导入外部数据文本: 28.1.执行外部的sql脚本 29.当前数据库上执行:mysql < input.sql 30.指定数据库上执行:mysql [表名] < input.sql 31.2.数据传入命令load data local infile "[文件名]" into table [表名]; 32.备份数据库:(dos下) 33.mysqldump --opt school>school.bbb 34. 35. 36. 37.提示:常用MySQL命令以";"结束,有少量特殊命令不能加";"结束,如备份数据库 38.一. 增删改查操作 39. 40.============================================================================ ===== 41.1. 增: 42.insert into 表名values(0,'测试'); 43.注:如上语句,表结构中有自动增长的列,也必须为其指定一个值,通常为0 44.insert into 表名(id,name) values(0,'尹当')--同上

SQL常用增删改查语句

SQLSQL常用增删改查语句 作者:hiker 一.Insert 插入语句 1.Insert into 表名(列名)values (对应列名值) //插入一行. 2.Insert into 新表名(列名) Select (列名) 旧表名 3.Select 旧表名.字段… Into 新表名from 旧表名 4.Select identity ( 数据类型,标识种子,标识增长量) as 列名 Into新表名 From 旧表名 5.Insert 表名(列名) Select (对应列名值) union Select (对应列名值) union Select (对应列名值) 二.Update 更新语句 1.Update 表名set 列名=’更新值’ where 更新条件 三.delete 删除语句 1.delete from 表名where 删除条件 2.truncate table 表名//删除表中所有行 四.select 基本查询语句 1.select 列名from 表名where 查询条件 order by 排序的列名asc或desc升/降 2.select 列名as 别名from 表名where 查询条件 3.select 列名from 表名where 列名is null //查询空值 4.select 列名, ‘常量值’ as 别名from 表名//查询时定义输出一列常量值 5.select top 5 列名from 表名//查询前5行 6.select top 5 percent 列名from 表名//查询前百分之5的数据行 五.select 函数查询语句 1.select LEN(Class_Name)from Class //查询class_Name字符串长度 2.select upper(Class_Name)from Class //查询class_Name并转换为大写 3.ltrim和rtrim //清除字符串左右空格 4.select REPLACE(card_No,'0','9')from CardRecord//修改列中字符串中的字符 列名字符串中0修改为9 5.select STUFF(Card_No,2,3,'8888')from CardRecord 列名字符串中第2个开始删除3个字符,再从第二个开始插入8888字符串 6.select GETDATE()//显示系统日期

SQL常用的增删改查语句、视屏笔记

SQL:结构化查询语言,是国际化标准组织采纳的标准数据库语言 作用:数据库管理员可以用利用次语言操作数据库系统,即:SQL是一种能够被数据库系统读懂的操作语言。 T—SQL是微软公司针对SQL Server这种关系数据库所定义的一种SQL语言,用户可以完成Server数据库中的所有操作。 SQL的分类: (1):数据定义语言,DDL 用来创建数据库和数据库中的各种对象 数据库中的对象包括:表、视图、索引、存储过程、触发器 DDL常用的命令包括:create、alter、drop (2):数据操纵语言,DML 可以完成对数据库中数据的查询、更新、删除、插入的功能 DML常用的命令包括:select、update、delete、insert (3)数据控制语言,DCL DCL常用的命令包括:grant、revoke、deny (4)数据类型 1、数字数据类型 a、整型数据类型:bigint、int、smallint、tinyint b、浮点数据类型:float、real c、固定精度数据类型:decimal、numeric d、货币数据类型:money、smallmoney 将数据格式转换成字符串方法:STR(ID;---ID为数据类型,STR(ID为字符串 2、字符数据类型:varchar、char、text、nchar、nvarchar、ntext 区别char和varchar数据类型: char数据类型是存放固定长度的字符 Varchar数据类型是存放动态长度的字符

char(14,实际放入到数据库的字符长度为14个字符,如果实际存储的长度小于定义的 长度,那么数据库会在次字符串后面加上3个空格 1、insert 语句: insert语句是属于SQL语言中的DML 作用:为表插入数据 你向一个表中插入一条新记录,但有一个字段没有提供数据。在这种情况下,有下面 的四种可能: 1、如果该字段有一个缺省值(默认值),该值会被使用。 2、如果该字段可以接受空值,而且没有缺省值,则会被插入空值。 3、如果该字段不能接受空值,而且没有缺省值,就会出现错误。你会收到错误信 息: The column in table mytable may not be null. 4、如果该字段是一个标识字段,那么它会自动产生一个新值。当你向一个有标识字 段的表中插入新记录时,只要忽略该字段,标识字段会给自己赋一个新值。 使用INSERT语句可向文本型字段中插入数据。但是,如果你需要输入很长的字符 串,你应该使用WRITETEXT语句。 语法:insert into 表名(列名1,列名2,….. values(值1,值2,…. 注意:(列名1,列名2,…..可以不写,这样的话,插入的values(值1,值2,….中的值必须包含表中的所有列,不然会报错。 把INSERT 语句与SELECT 语句结合起来,可以添加多个记录。像这样: 代码:INSERT mytable (first_column,second_column SELECT another_first,another_second FROM anothertable WHERE another_first=’Copy Me!’ 这个语句从anothertable拷贝记录到mytable.只有表anothertable中字段another_first的值为’Copy Me!’的记录才被拷贝。 2、update 语句它也是属于SQL语句中的DML, 可以修改表的数据,使用WHERE子 句来选择更新特定的记录。 需要更新很长的字符串,应使用UPDATETEXT语句。如果你不提供WHERE子句,表中 的所有记录都将被更新。

sql完整数据库操作、存储过程、登录判断,增删改查(精)

create database AA go use AA go create table Student ( sid int primary key, sname nvarchar(20, sex nvarchar(20, birthday datetime, class nvarchar(10, pwd nvarchar(10 go create table Course ( cid int identity(1,1 primary key, cname nvarchar(20 go create table Score ( sid int, cid int, score int, primary key(sid,cid go insert into Course values('C#' insert into Course values('English' insert into Student values(1001,'张三','男', '1990-1- 12','一班','123' insert into Student values(1002,'李四','女', '1990-4-20','一班','456' insert into Student values(1003,'王五','男', '1991-10-11','二班','789' insert into Student values(1004,'赵六','男', '1992-8-5','二班','101' insert into Student values(1005,'天齐','男', '1992-5-5','三班','120' insert into Score values(1001,1,65 insert into Score values(1001,2,60 insert into Score values(1002,1,50 insert into Score values(1002,2,40 insert into Score values(1003,1,75 insert into Score values(1003,2,60 insert into Score values(1004,1,72 insert into Score values(1004,2,45 select * from student select sname from student select sid,sname from student select * from student order by sid desc --desc 降序 asc 升序 select * from student order by sex,class asc select * from student order by birthday desc select * from student where sid=1001 select * from student where sex='男' and birthday>'1991-1-1' select * from student where birthday between '1990-1-1' and '1991-1-1' select * from student where sname like '%五%' --%%是通配符 select distinct(class from student --去除重复项 select count(sid from student select count(sid from student where sid=1001 and pwd='123' select count(sid,class from student group by class select count(sid,sex from student group by sex select count(sid,sex,class from student group by sex,class select count(sid,class from student where sex='男' group by class select sum(score from score select avg(score from score where sid=1001 select max(score,cid from score group by cid select avg(score,cid from score group by cid having avg(score>60 select avg(score,sid,cid from score group by sid,cid having avg(score<60 select avg(score,sid from score group by sid having avg(score>59 select * from score where score = (select max(score from score select * from student where birthday = (select min(birthday from student select * from student select * from course select * from score select count(sid as Y_N from student where sid=1001 and pwd='123'

MySql常用SQL增删改查(精)

SQL语句的添加、删除、修改 添加、删除、修改使用db.Execute(Sql命令执行操作 (一 Select语句 A. 普通查询 1. 查询全部的行和列 select * from users 2. 查询部分的行并用as命名列(as可用空格代替) select UserName as 用户名,NickName 密码,sex from users where sex = 0 select UserName,NickName,sex from users where sex <> 0 3. 查询空行 i. select UserName from users where sex is null; ii. select UserName from users where sex = ""; 4. 使用常量列 select UserName as 用户名,"中北大学" as "学校" from users; 5. 限制固定行数 select UserId ,UserName as 用户名 from users limit 2,4; 6. 升序排列降序排列按照多列排序 i. select * from users where Height >178 order by age asc; ii. select * from users where Height >178 order by age desc; iii. select UserName as 用户名,Height 身高,Age as 年龄 from users where Age>20 order by Height asc, Age desc;

sql与mysql可视化增删改查

MYSQL与SQL可视化增,删,改 1.建立表格: 属性: public JTable table; public DefaultTableModel dftm; public String[] columnNames= new String[] { "序号", "用户名", "密码"}; // 定义数组表示表格标题 dftm = new DefaultTableModel(null, columnNames); /*for (int i = 0; i < 10; i++) { Object[] content = { 1, 2, 3 }; dftm.addRow(content);// 增加行 }*/ initTable(dftm); JTable table = new JTable(dftm);// 根据TableModel显示内容 JScrollPane src = new JScrollPane(table); //给表格增加滚动条 src.setBounds(50, 150, 500, 200); //设置滚动条位置与大小 contentPane.add(src); 2.“修改用户”按钮的代码: JButton rewamp = new JButton("\u4FEE\u6539\u7528\u6237"); rewamp.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int id=Integer.parseInt(txtId.getText()); String name=txtName.getText();//取得用户名文本框的值 String pwd=txtPwd.getText();//取得用户密码文本框的值 String sqlUpdate="UPDATE userlist set name='" + name+"', password='"+pwd+"' where Id="+id; DBComm dbco=new DBComm(); dbco.openConnection(); try { dbco.executeUpdate(sqlUpdate);

数据库语句增删改查

mysql语句用法,添加、修改、删除字段一,连接MySQL 二,MySQL管理与授权 三,数据库简单操作 四, 数据库备份 五,后记 一,连接MySQL 格式:mysql -h 远程主机地址 -u 用户名 -p 回车 输入密码进入: mysql -u root -p 回车 Enter password: ,输入密码就可以进入 mysql> 进入了 退出命令:>exit 或者ctrl+D 二,MySQL管理与授权 1.修改密码:

格式:mysqladmin -u 用户名 -p 旧密码 password 新密码 2.增加新用户: >grant create,select,update....(授予相关的操作权限) ->on 数据库.* -> to 用户名@登录主机 identified by '密码' 操作实例: 给root用户添加密码: # mysqladmin -u root password 52netseek 因为开始root没有密码,所以-p旧密码一项可以省略. 登陆测试: # mysql -u root -p 回车 输入密码,成功登陆. 将原有的mysql管理登陆密码52netseek改为52china. # mysqladmin -u root -p 52netseek password '52china' 创建数据库添加用户并授予相应的权限: mysql> create database phpbb; Query OK, 1 row affected (0.02 sec)

mysql> use phpbb; Database changed mysql> grant create,select,update,insert,delete,alter -> on phpbb.* -> to phpbbroot@localhost identified by '52netseek'; Query OK, 0 rows affected (0.00 sec) 授予所有的权限: >grant all privileges >on bbs.* >to bbsroot@localhost identified by '52netseek' 回收权限: revoke create,select,update,insert,delete,alter on phpbb.* from phpbbroot@localhost identified by '52netseek'; 完全将phpbbroot这个用户删除: >use mysql >delete from user where user='phpbbroot' and host='localhost'; >flush privileges; 刷新数据库 三,数据库简单操作

Mysql数据库·增删改查

Mysql Oracle(甲骨文) 大型数据库 MySql 中小型数据库 DB2 SqlServer ..... Mysql的发展: 瑞典的Mysql AB公司 2008年Sun公司(JAVA) 2009年Oracle 收购sun公司 IBM 69亿美元sun Eclipse(日蚀) Oracle 74亿美元sun Mysql的简单使用: 1.登陆mysql数据库 win+r --->cmd mysql -uroot -p1234 修改密码:mysql> set password for rootlocalhost = password('1234'); 此处可能存在异常情况原因:a、未配置环境变量b、Mysql服务未开启(net start mysql) 2.对库的操作 a.查看所有的库 show databases; 系统自带库: information_schema mysql test b.创建库 create database day01;(不指定编码,跟随数据库系统编码) create database db1 default character set gbk;(指定编码) 查看创建库的语句: show create database 库名. 修改库的编码: alter database day01 default character set utf8; c.删除库 drop database 库名.

drop database day01; 注意: 系统自带的三个库不能删除. d.使用库 use db1; 3.对表的操作 表:二维关系表有行有列的关系表. 记录:表中的一行数据. 字段:表中的一列. 常用的字段类型: 字符串类型: varchar(长度) 、char 数值类型: int(整数) float double(小数) 日期类型: date a.创建表 员工表:员工号性别年龄职位薪水入职日期 create table emp( empno varchar(4), name varchar(30), sex varchar(5), age int(3), job varchar(30), salary int(5), hiredate date ); b.查看所有的表 show tables; c.查看建表语句 show create table 表名. d.查看表结构 desc 表名. e.往表中插入数据 e1.给表中所有的字段插入数据 insert into emp (empno,name,sex,age,job,salary,hiredate) values ('1001','zhangsan','m',22,'developer',10000,'2015-12-21'); 简写形式: insert into emp values ('1002','lisi','m',23,'test',8000,'2015-10-10'); e2.给表中部分字段插入数据 insert into emp(empno,name,sex,age) values ('1003','cuihua','w',18);

SQL单词及数据库增删改查

数据库(Database, DB) 数据库管理系统(Database Management System, DBMS) 数据库管理员(Database Administrator, DBA) 数据库系统(Database System, DBS) SQL:结构化查询语言(structured Query Language)DB: 数据库(database) DBA:数据库管理员(database administrator)DBMS:数据库管理系统(database management system) Toa d:癞蛤蟆,一款开发数据库的可视化软件 Roo t: 根 Re la tion shi p:关系 U ser:用户 Ta ble:表 P ro ce dure:存储过程 Fun c tion:函数 Tri gger:触发器 Vie w:视图 In de x:索引 C rea te:创建 Dro p:删除 Ta ble:表 En gine:引擎 Co lu mn:列 P ri ma ry:主要的 Primary key:主键 Na me:列名 Au to:自动的 In cre men t:可增长的 Au to_In cre men t: 自动增长 Da ta Ty pe:数据类型 Not null:非空 Co mmen t:注释 Cha ra c ter se t:字符集 Co lle c tion:采集(对比方法) Fo reig n:外部的

Fo reig n key:外键 SQL 数据化查询语言 DML数据操作语言(Data Manipulation Language)DCL数据控制语言(Data Control Language)DQL: 数据查询语言(Data Query Language)DDL: 数据定义语言(Data Definition Language) in ser t:插入(增) de le te:删除(删) up da te:修改(改) se le c t:查询(查) in to:到哪里。。。 fro m:从哪里来。。。 va lue:值 u nio n:拼接 wh ere:在。。。。。 se t:设置 trun ca te:截断 im por t:导入 ex por t:导出 Or der:顺序 Or der by:排序 Re p la ce:替换 Now:现在 Cei ling:天花板 F loo r:地板 Si gn:符号 Con ver t:转换 Di s tin c t:独特的(去重复的) Li mi t:限制 li ke:像。。。一样 be t wee n 。。。and:在。。。。和。。。。之间 su m:和 avg:平均值

C_连接sql数据库执行简单的增删改查操作

以users表为例,有三个字段,自增长的编号id,int类型;名称name,nvarchar 类型,密码pwd,nvarchar类型 首先在vs2005中引入using System.Data.SqlClient;命名空间 ///

/// 增加 /// /// 姓名 /// 密码 /// public int Insert(string name,string pwd) { SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True");//Initial Catalog后面跟你数据库的名字,如果你的SqlServer服务器名称后面不带SQLEXPRESS,那么Data Source=. conn.Open(); string sql = "insert into users(name,pwd) values(@name,@pwd)"; SqlCommand cmd = new SqlCommand(sql,conn); SqlParameter parn = new SqlParameter("@name",name); cmd.Parameters.Add(parn); SqlParameter parp = new SqlParameter("@pwd", pwd); cmd.Parameters.Add(parn); int result = cmd.ExecuteNonQuery();//result接收受影响行数,也就是说result大于0的话表示添加成功 conn.Close(); cmd.Dispose(); return result; } /// /// 删除 /// /// 姓名 /// 密码 /// public int Update(int id) { SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True");//Initial Catalog后面跟你数据库的名字,如果你的SqlServer服务器名称后面不带SQLEXPRESS,那么Data Source=.

SQL数据库中的增删改查总结1

SQL数据库中的增删改查总结1 SQL数据库中的增删改查总结1 一、增:有2种方法 1.使用insert插入单行数据: 语法:insert[into] 表名 [列名]values 列 例:insertintoStrdents(姓名,性别,出生日期)values(“邢金聪”,”男”,”1990/6/15”) 注意:如果省略表名,将依次插入所有列 2.使用insert,select语句将现有表中的数据添加到已有的新表中 语法:insertinto 已有的新表列名 select 原表列名 from 原表名 例:insertintoaddressList(“姓名”,”地址”,”电子邮 件”)selectname,address,email fromStrdents 注意:查询得到的数据个数、顺序、数据类型等,必须与插入的项保持一致 二、删:有2中方法 1.使用delete删除数据某些数据 语法:deletefrom 表名 [where 删除条件 ] 例:deletefromawherename=“邢金聪”(删除表a中列为邢金聪的行)注意:删除整行不是删除单个字段,所以在delete后面不能出现字段名 2.使用truncatetable删除整个表的数据 语法:truncatetable 表名

例:truncatetableaddressList 注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能用于有外建约束引用的表 三、改 使用update更新修改数据 语法:update 表名 set 列名=更新 [where 更新条件 ] 例:truncatetableaddressList 注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能用于有外建约束引用的表 四、查 1.普通查询 语法:select 列名 from 表名 [where 查询条件表达试 ][orderby 排序的列名 [asc或desc]] 1).查询所有数据行和列 例:select*froma 说明:查询a表中所有行和 2).查询部分行列--条件查询 例:selecti,j,kfromawheref=5 说明:查询表a中f=5的所有行,并显示i,j,k3列 3).在查询中使用AS更改列名 例:selectnameas姓名fromawheregender=“男”

相关主题
文本预览
相关文档 最新文档