mysql常用操作

1、

插入单行

Insert into <表名>(列名) values(列值)

Eg:insert into student ('姓名','地址','出生日期') values(‘祝柏青’,’’,’1996/4/9’)

 

1.4【使用union关键字合并数据进行插入多行】
insert <表名> <列名> select <列值> tnion select <列值>
例:insert Students (姓名,性别,出生日期)
select '开心朋朋','','1980/6/15' unionunion表示下一行)
select '蓝色小明','','19**/**/**

 

将现有表数据加入到已有的新表

Insert into <表名>(列名)select <原列表名> from <原列表名>

Eginsert into student_new'姓名','地址','电子邮件'select nameaddressemail from student

 

拿已有的数据创建一个新表并填充

Select < 新建列表名> into <新建表名> from<源表名>

Egselect name,address,email into tongxunlu from strdents

 

 

2

2.1【删除<满足条件的>行】
delete from <表名> [where <删除条件>]
例:delete from a where name='开心朋朋'(删除表a中列值为开心朋朋的行)

2.2【删除整个表】
truncate table <表名>
truncate table tongxunlu
注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能用语有外建约束引用的表

 


4

4.1``精确(条件)查询
select <列名> from <表名> [where <查询条件表达试>] [order by <排序的列名>[ascdesc]]

4.1.1【查询所有数据行和列】
例:select * from a
说明:查询a表中所有行和列


4.1.2【查询部分行列--条件查询】
例:select i,j,k from a where f=5
说明:查询表af=5的所有行,并显示i,j,k3列

4.1.3【在查询中使用AS更改列名】
例:select name as 姓名 from a where xingbie=''
说明:查询a表中性别为男的所有行,显示name列,并将name列改名为(姓名)显示

4.1.5【在查询中使用常量】
例:select name, '唐山' as 地址 from Student
说明:查询表a,显示name列,并添加地址列,其列值都为'唐山'

4.1.4【查询空行】
例:select name from a where email is null
说明:查询表aemail为空的所有行,并显示name列;SQL语句中用is null或者is not null来判断是否为空行

4.1.6【查询返回限制行数(关键字:top percent)
例1:select top 6 name from a
说明:查询表a,显示列name的前6行,top为关键字
例2:select top 60 percent name from a
说明:查询表a,显示列name60%percent为关键字

4.2.2【使用between在某个范围内进行查询】
例:select * from a where nianling between 18 and 20
说明:查询显示表anianling1820之间的记录

4.1.7【查询排序(关键字:order by , asc , desc)】
例:select name
from a where chengji>=60
order by desc
说明:查询a表中chengji大于等于60的所有行,并按降序显示name列;默认为ASC升序

4.2``模糊查询
4.2.1【使用like进行模糊查询】
注意:like运算副只用于字符串,所以仅与charvarchar数据类型联合使用
例:select * from a where name like '%'
说明:查询显示表a中,name字段第一个字为赵的记录

4.2.3【使用in在列举值内进行查询】
例:select name from a where address in ('北京','上海','唐山')
说明:查询表aaddress值为北京或者上海或者唐山的记录,显示name字段


4.3``.分组查询
4.3.1【使用group by进行分组查询】
例:select studentID as 学员编号,AVG(列名) as 平均成绩
from 表名
group by studentID
说明:在表中查询,按strdentID字段分组,显示strdentID字段和列名字段的平均值;select语句中只允许被分组的列和为每个分组返回的一个值的表达式,例如用一个列名作为参数的聚合函数

4.3.2【使用having子句进行分组筛选】
例:select studentID as 学员编号,AVG(列名) as 平均成绩
from 表名 
group by studentID
having AVG(列名)>1
说明:接上面例子,显示分组后count(score)>1的行having是分组(group by)后的筛选条件,分组后的数据组内再筛选

where则是在分组前筛选


4.4``.多表联接查询

4.4.1内联接

4.4.1.1【在where子句中指定联接条件】
例:select a.name,b.chengji
from a,b
where a.name=b.name
说明:查询表a和表bname字段相等的记录,并显示表a中的name字段和表b中的chengji字段

 

4.4.1.2【在from子句中使用join…on
例:select a.name,b.chengji
from a inner join b
on (a.name=b.name)
说明:同上
4.4.2外联接

4.4.2.1【左外联接查询】
例:select s.name,c.courseID,c.score
from strdents as s
left outer join score as c
on s.scode=c.strdentID
说明:在strdents表和score表中查询满足on条件的行,条件为score表的strdentIDstrdents表中的sconde相同

4.4.2.2【右外联接查询】
例:select s.name,c.courseID,c.score
from strdents as s
right outer join score as c
on s.scode=c.strdentID
说明:在strdents表和score表中查询满足on条件的行,条件为strdents表中的scondescore表的strdentID相同

左连接显示左边全部的和右边与左边相同的
右连接显示右边全部的和左边与右边相同的

 

SQL 约束

约束用于限制加入表的数据的类型。

可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。

我们将主要探讨以下几种约束:

NOT NULL

UNIQUE

PRIMARY KEY

FOREIGN KEY

CHECK

DEFAUL

 

SQL NOT NULL 约束

NOT NULL 约束强制列不接受 NULL 值。

NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。

下面的 SQL 语句强制 "Id_P" 列和 "LastName" 列不接受 NULL 值:

CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)


SQL UNIQUE 约束

UNIQUE 约束唯一标识数据库表中的每条记录。

UNIQUE PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。

PRIMARY KEY 拥有自动定义的 UNIQUE 约束。

请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

SQL UNIQUE Constraint on CREATE TABLE

 

下面的 SQL "Persons" 表创建时在 "Id_P" 列创建 UNIQUE 约束

MySQL:

CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),UNIQUE (Id_P)

)

SQL Server / Oracle / MS Access:

CREATE TABLE Persons

(

Id_P int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

 

如果需要命名 UNIQUE 约束,以及为多个列定义 UNIQUE 约束,请使用下面的 SQL 语法

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)

)

SQL UNIQUE Constraint on ALTER TABLE

 

当表已被创建时,如需在 "Id_P" 列创建 UNIQUE 约束,请使用下列 SQL

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE PersonsADD UNIQUE (Id_P)

 

如需命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束,请使用下面的 SQL 语法

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE PersonsADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)

 

撤销 UNIQUE 约束

如需撤销 UNIQUE 约束,请使用下面的 SQL

MySQL:

ALTER TABLE PersonsDROP INDEX uc_PersonID

SQL Server / Oracle / MS Access:

ALTER TABLE PersonsDROP CONSTRAINT uc_PersonID

 

SQL PRIMARY KEY 约束

PRIMARY KEY 约束唯一标识数据库表中的每条记录。

主键必须包含唯一的值。

主键列不能包含 NULL 值。

每个表都应该有一个主键,并且每个表只能有一个主键。

SQL PRIMARY KEY Constraint on CREATE TABLE

 

下面的 SQL "Persons" 表创建时在 "Id_P" 列创建 PRIMARY KEY 约束

MySQL:

CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),PRIMARY KEY (Id_P)

)

SQL Server / Oracle / MS Access:

CREATE TABLE Persons

(

Id_P int NOT NULL PRIMARY KEY,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

 

如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)

)

SQL PRIMARY KEY Constraint on ALTER TABLE

 

如果在表已存在的情况下为 "Id_P" 列创建 PRIMARY KEY 约束,请使用下面的 SQL

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE PersonsADD PRIMARY KEY (Id_P)

如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE PersonsADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)

注释:如果您使用 ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时)。

 

撤销 PRIMARY KEY 约束

如需撤销 PRIMARY KEY 约束,请使用下面的 SQL

MySQL:

ALTER TABLE PersonsDROP PRIMARY KEY

SQL Server / Oracle / MS Access:

ALTER TABLE PersonsDROP CONSTRAINT pk_PersonID

 

SQL FOREIGN KEY 约束

一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY

让我们通过一个例子来解释外键。请看下面两个表:

"Persons" 表:

Id_P

LastName

FirstName

Address

City

1

Adams

John

Oxford Street

London

2

Bush

George

Fifth Avenue

New York

3

Carter

Thomas

Changan Street

Beijing

"Orders" 表:

Id_O

OrderNo

Id_P

1

77895

3

2

44678

3

3

22456

1

4

24562

1

请注意,"Orders" 中的 "Id_P" 列指向 "Persons" 表中的 "Id_P" 列。

"Persons" 表中的 "Id_P" 列是 "Persons" 表中的 PRIMARY KEY

"Orders" 表中的 "Id_P" 列是 "Orders" 表中的 FOREIGN KEY

FOREIGN KEY 约束用于预防破坏表之间连接的动作。

FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

SQL FOREIGN KEY Constraint on CREATE TABLE

 

下面的 SQL "Orders" 表创建时为 "Id_P" 列创建 FOREIGN KEY

MySQL:

CREATE TABLE Orders

(

Id_O int NOT NULL,

OrderNo int NOT NULL,

Id_P int,

PRIMARY KEY (Id_O),FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)

)

SQL Server / Oracle / MS Access:

CREATE TABLE Orders

(

Id_O int NOT NULL PRIMARY KEY,

OrderNo int NOT NULL,Id_P int FOREIGN KEY REFERENCES Persons(Id_P)

)

 

如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束,请使用下面的 SQL 语法

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Orders

(

Id_O int NOT NULL,

OrderNo int NOT NULL,

Id_P int,

PRIMARY KEY (Id_O),CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P)

REFERENCES Persons(Id_P)

)

SQL FOREIGN KEY Constraint on ALTER TABLE

 

如果在 "Orders" 表已存在的情况下为 "Id_P" 列创建 FOREIGN KEY 约束,请使用下面的 SQL

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE OrdersADD FOREIGN KEY (Id_P)

REFERENCES Persons(Id_P)

 

如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束,请使用下面的 SQL 语法

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE OrdersADD CONSTRAINT fk_PerOrders

FOREIGN KEY (Id_P)

REFERENCES Persons(Id_P)

撤销 FOREIGN KEY 约束

 

如需撤销 FOREIGN KEY 约束,请使用下面的 SQL

MySQL:

ALTER TABLE OrdersDROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE OrdersDROP CONSTRAINT fk_PerOrders

 

 

SQL CHECK 约束

CHECK 约束用于限制列中的值的范围

如果对单个列定义 CHECK 约束,那么该列只允许特定的值。

如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。

SQL CHECK Constraint on CREATE TABLE

 

下面的 SQL "Persons" 表创建时为 "Id_P" 列创建 CHECK 约束。CHECK 约束规定 "Id_P" 列必须只包含大于 0 的整数

My SQL:

CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),CHECK (Id_P>0)

)

SQL Server / Oracle / MS Access:

CREATE TABLE Persons

(

Id_P int NOT NULL CHECK (Id_P>0),

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束,请使用下面的 SQL 语法

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')

)

SQL CHECK Constraint on ALTER TABLE

 

如果在表已存在的情况下为 "Id_P" 列创建 CHECK 约束,请使用下面的 SQL

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE PersonsADD CHECK (Id_P>0)

 

如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束,请使用下面的 SQL 语法

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE PersonsADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')

 

撤销 CHECK 约束

如需撤销 CHECK 约束,请使用下面的 SQL

SQL Server / Oracle / MS Access:

ALTER TABLE PersonsDROP CONSTRAINT chk_Person

MySQL:

ALTER TABLE PersonsDROP CHECK chk_Person

 

SQL DEFAULT 约束

DEFAULT 约束用于向列中插入默认值。

如果没有规定其他的值,那么会将默认值添加到所有的新记录。

SQL DEFAULT Constraint on CREATE TABLE

下面的 SQL "Persons" 表创建时为 "City" 列创建 DEFAULT 约束:

My SQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255) DEFAULT 'Sandnes'

)

 

通过使用类似 GETDATE() 这样的函数,DEFAULT 约束也可以用于插入系统值

CREATE TABLE Orders

(

Id_O int NOT NULL,

OrderNo int NOT NULL,

Id_P int,

OrderDate date DEFAULT GETDATE()

)

SQL DEFAULT Constraint on ALTER TABLE

 

如果在表已存在的情况下为 "City" 列创建 DEFAULT 约束,请使用下面的 SQL

MySQL:

ALTER TABLE Persons

ALTER City SET DEFAULT 'SANDNES'

SQL Server / Oracle / MS Access:

ALTER TABLE Persons

ALTER COLUMN City SET DEFAULT 'SANDNES'

 

撤销 DEFAULT 约束

如需撤销 DEFAULT 约束,请使用下面的 SQL

MySQL:

ALTER TABLE Persons

ALTER City DROP DEFAULT

SQL Server / Oracle / MS Access:

ALTER TABLE Persons

ALTER COLUMN City DROP DEFAULT

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值