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

SQL必知必会,mysql常用语法操作

2019-09-28 作者:数据库网络   |   浏览(194)
select CustomerNo from dbo.Customers;

推荐:

一、用户管理:

零、用户管理:

打开CMD,进入数据库命令:mysql -hlocalhost -uroot -p

通配符的使用

零、用户管理:

1、新建用户:

  1、新建用户:

退出数据库:exit

select *from dbo.Customers;
select CustomerNo from dbo.Customers
where CustomerNo LIKE'[AQ]%';--[]表示中括号中内容任取其一,%指代任意多个字符
SELECT CustomerNo FROM Customers
WHERE CustomerNo LIKE '_TM00_';--_指代任意单个字符

1、新建用户:

>CREATE USER name IDENTIFIED BY 'ssapdrow';

    >CREATE USER name IDENTIFIED BY 'ssapdrow';

 

拼接字段

>CREATE USER name IDENTIFIED BY 'ssapdrow';

2、更改密码:

  2、更改密码:

用户管理:

1 select CustomerNo '(' CustomerState ')' 
2 AS CustomerTitle
3 from dbo.Customers
4 ORDER BY CustomerNo DESC;--将两列合并成一列并取别名为CustomerTitle,按照CustomerNo降序排列

2、更改密码:

>SET PASSWORD FOR name=PASSWORD('fdddfd');

    >SET PASSWORD FOR name=PASSWORD('fdddfd');

  1、新建用户:

文本处理函数的使用RTRIM和LTRIM

>SET PASSWORD FOR name=PASSWORD('fdddfd');

3、权限管理

  3、权限管理

    >CREATE USER name IDENTIFIED BY 'ssapdrow';

1 SELECT RTRIM(CustomerNo) '(' RTRIM(CustomerState) ')'
2 AS CustomerTitle
3 FROM Customers
4 ORDER BY CustomerNo DESC;--在上一条语句的基础上去掉字符串右边的空格

3、权限管理

>SHOW GRANTS FOR name;    //查看name用户权限
>GRANT SELECT ON db_name.* TO name;    //给name用户db_name数据库的所有权限
>REVOKE SELECT ON db_name.* TO name;    //GRANT的反操作,去除权限;

    >SHOW GRANTS FOR name;    //查看name用户权限

  2、更改密码:

排序ORDER BY并以列号指代某一列

>SHOW GRANTS FOR name;    //查看name用户权限

二、数据库操作: 

    >GRANT SELECT ON db_name.* TO name;    //给name用户db_name数据库的所有权限

    >SET PASSWORD FOR name=PASSWORD('fdddfd');

1 SELECT CustomerNo,CustomerShortName,CustomerState,Class from dbo.Customers
2 ORDER BY 4 DESC,2;

>GRANT SELECT ON db_name.* TO name;    //给name用户db_name数据库的所有权限

1、查看数据库:

    >REVOKE SELECT ON db_name.* TO name;    //GRANT的反操作,去除权限;

  3、权限管理

NOT操作符,检索除某一项之外的所有数据

>REVOKE SELECT ON db_name.* TO name;    //GRANT的反操作,去除权限;

>SHOW DATABASES;

一、数据库操作: 

    >SHOW GRANTS FOR name;    //查看name用户权限

SELECT CustomerNo FROM dbo.Customers
WHERE NOT CustomerNo LIKE'[QC]%'

一、数据库操作:

2、创建数据库:

  1、查看数据库:

    >GRANT SELECT ON db_name.* TO name;    //给name用户db_name数据库的所有权限

IN操作符,检索在某个条件范围内的数据

1、查看数据库:

>CREATE DATABASE db_name;  //db_name为数据库名

    >SHOW DATABASES;

    >REVOKE SELECT ON db_name.* TO name;    //GRANT的反操作,去除权限;

SELECT CustomerNo,Class FROM dbo.Customers
WHERE CustomerNo IN ('ATM002','QTM104','ATM004')
ORDER BY 2 DESC;

>SHOW DATABASES;

3、使用数据库:

  2、创建数据库:

一、数据库操作: 

文本处理函数UPPER和LOWER的使用,将列值转换为大写或者转换成小写

2、创建数据库:

>USE db_name;

    >CREATE DATABASE db_name;  //db_name为数据库名

  1、查看数据库:

SELECT UPPER(CustomerNo) AS CUS,Class FROM dbo.Customers
WHERE CustomerNo LIKE 'Cus%';

SELECT LOWER(CustomerNo) AS cus,Class FROM dbo.Customers
WHERE CustomerNo LIKE '_TM%'

>CREATE DATABASE db_name;  //db_name为数据库名

4、删除数据库:

  3、使用数据库:

    >SHOW DATABASES;

时间处理函数DATEPART的使用,取时间值中的某一项数据

3、使用数据库:

>DROP DATABASE db_name;

    >USE db_name;

  2、创建数据库:

SELECT Created from dbo.Inspections
WHERE DATEPART(YY,Created)=2018;

>USE db_name;

三、创建表:

  4、删除数据库:

    >CREATE DATABASE db_name;  //db_name为数据库名

聚集函数AVG,COUNT,MAX,MIN,SUMD的使用

4、删除数据库:

1、创建表:

    >DROP DATABASE db_name;

  3、使用数据库:

SELECT AVG(TotalAmount) AS AvgAmount FROM dbo.Inspections;

SELECT COUNT(*) AS CountNum FROM dbo.Customers
WHERE CustomerState='销售机会';
SELECT CustomerNo FROM dbo.Customers
WHERE CustomerState='销售机会';

SELECT MAX(TotalAmount) AS MaxAmount FROM dbo.Inspections;
SELECT * FROM dbo.Inspections WHERE TotalAmount='126000'

SELECT * FROM dbo.Inspections;
SELECT SUM(TotalVolumn) AS SumV FROM dbo.Inspections;
SELECT TotalAmount TotalGrossWeight AS SumV FROM dbo.Inspections;

SELECT COUNT(*) AS countNo,
MIN(TotalVolumn) AS minTV,
MAX(TotalVolumn) AS maxTV,
AVG(TotalVolumn) AS avgTV
FROM dbo.Inspections

>DROP DATABASE db_name;

>CREATE TABLE table_name(
>id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,    //id值,无符号、非空、递增——唯一性,可做主键。
>name VARCHAR(60) NOT NULL
>score TINYINT UNSIGNED NOT NULL DEFAULT 0,    //设置默认列值
>PRIMARY KEY(id)
>)ENGINE=InnoDB    //设置表的存储引擎,一般常用InnoDB和MyISAM;InnoDB可靠,支持事务;MyISAM高效不支持全文检索
>DEFAULT charset=utf8;  //设置默认的编码,防止数据库中文乱码

二、创建表:

    >USE db_name;

分组函数GROUP BY

二、创建表:

如果有条件的创建数据表还可以使用

  1、创建表:

  4、删除数据库:

SELECT COUNT(*) AS countNO
FROM dbo.Customers
WHERE CustomerNo LIKE '_TM%'
GROUP BY CustomerState;

1、创建表:

  >CREATE TABLE IF NOT EXISTS tb_name(........

    >CREATE TABLE table_name(

    >DROP DATABASE db_name;

对组处理条件函数HAVING,对已分组的组进行进一步筛选

>CREATE TABLE table_name(

2、复制表:

    >id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,    //id值,无符号、非空、递增——唯一性,可做主键。

二、创建表:

SELECT CustomerState,COUNT(*) AS countNo
FROM dbo.Customers
WHERE CustomerNo LIKE '_TM%'
GROUP BY CustomerState
HAVING CustomerState='产品认可';

>id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,    //id值,无符号、非空、递增——唯一性,可做主键。

>CREATE TABLE tb_name2 SELECT * FROM tb_name;

    >name VARCHAR(60) NOT NULL

  1、创建表:

内联结,联结多个表的查询语句

>name VARCHAR(60) NOT NULL

或者部分复制:

    >score TINYINT UNSIGNED NOT NULL DEFAULT 0,    //设置默认列值

    >CREATE TABLE table_name(

SELECT * FROM dbo.Quotations;
SELECT QuotationNo,QuotationStatus,Class
FROM Quotations,Customers
WHERE Quotations.CustomerNo=Customers.CustomerNo;

SELECT QuotationNo,QuotationStatus,Class
FROM Quotations INNER JOIN Customers
ON Quotations.CustomerNo=Customers.CustomerNo;

>score TINYINT UNSIGNED NOT NULL DEFAULT 0,    //设置默认列值

>CREATE TABLE tb_name2 SELECT id,name FROM tb_name;

    >PRIMARY KEY(id)

    >id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,    //id值,无符号、非空、递增——唯一性,可做主键。

将多表联结转化为子查询语句

>PRIMARY KEY(id)

3、创建临时表:

    >)ENGINE=InnoDB    //设置表的存储引擎,一般常用InnoDB和MyISAM;InnoDB可靠,支持事务;MyISAM高效不支持全文检索

    >name VARCHAR(60) NOT NULL

SELECT QuotationNo,QuotationStatus FROM Quotations,Customers
where Customers.CustomerState='销售机会'
AND Customers.CustomerNo=Quotations.CustomerNo;

SELECT QuotationNo,QuotationStatus FROM Quotations
WHERE Quotations.CustomerNo IN(
SELECT CustomerNo FROM Customers
WHERE Customers.CustomerState='销售机会');--要求查询结果的所有列都在同一张表中才能与多表联结互相转化

>)ENGINE=InnoDB    //设置表的存储引擎,一般常用InnoDB和MyISAM;InnoDB可靠,支持事务;MyISAM高效不支持全文检索

>CREATE TEMPORARY TABLE tb_name(这里和创建普通表一样);

    >DEFAULT charset=utf8;  //设置默认的编码,防止数据库中文乱码

    >score TINYINT UNSIGNED NOT NULL DEFAULT 0,    //设置默认列值

表别名

>DEFAULT charset=utf8;  //设置默认的编码,防止数据库中文乱码

4、查看数据库中可用的表:

    如果有条件的创建数据表还可以使用   >CREATE TABLE IF NOT EXISTS tb_name(........

    >PRIMARY KEY(id)

SELECT Q.QuotationNo,Q.QuotationStatus,C.Class
FROM Quotations Q,Customers C
WHERE C.CustomerState='销售机会'
AND Q.CustomerNo=C.CustomerNo;

SELECT QuotationNo,QuotationStatus,Class
FROM Quotations Q,Customers C
WHERE Q.QuotationStatus='处理中'
AND Q.CustomerNo=C.CustomerNo
AND C.CustomerState='销售机会';

如果有条件的创建数据表还可以使用  >CREATE TABLE IF NOT EXISTS tb_name(........

>SHOW TABLES;

  2、复制表:

    >)ENGINE=InnoDB    //设置表的存储引擎,一般常用InnoDB和MyISAM;InnoDB可靠,支持事务;MyISAM高效不支持全文检索

自联结

2、复制表:

5、查看表的结构:

    >CREATE TABLE tb_name2 SELECT * FROM tb_name;

    >DEFAULT charset=utf8;  //设置默认的编码,防止数据库中文乱码

SELECT C1.CustomerNo,C1.Class,C1.CustomerState
FROM Customers C1,Customers C2
WHERE C2.CustomerNo='CTM002'
AND C1.Class=C2.Class;--列出所有和CTM002的Class一样的客户

>CREATE TABLE tb_name2 SELECT * FROM tb_name;

>DESCRIBE tb_name;

    或者部分复制:

    如果有条件的创建数据表还可以使用   >CREATE TABLE IF NOT EXISTS tb_name(........

将上面的自联结语句转换成子查询语句

或者部分复制:

也可以使用:

    >CREATE TABLE tb_name2 SELECT id,name FROM tb_name;

  2、复制表:

SELECT CustomerNo,Class,CustomerState
FROM Customers
WHERE Class=(
SELECT Class FROM Customers
WHERE CustomerNo='CTM002'
);

>CREATE TABLE tb_name2 SELECT id,name FROM tb_name;

>SHOW COLUMNS in tb_name;     //from也可以

  3、创建临时表:

    >CREATE TABLE tb_name2 SELECT * FROM tb_name;

组合查询UNION和UNION ALL

3、创建临时表:

6、删除表:

    >CREATE TEMPORARY TABLE tb_name(这里和创建普通表一样);

    或者部分复制:

SELECT CustomerNo,Class,CustomerState
FROM Customers
WHERE Class='C'
UNION
SELECT CustomerNo,Class,CustomerState
FROM Customers
WHERE CustomerState='销售机会'---重复记录不显示

SELECT CustomerNo,Class,CustomerState
FROM Customers
WHERE Class='C'
UNION ALL
SELECT CustomerNo,Class,CustomerState
FROM Customers
WHERE CustomerState='销售机会'
ORDER BY 1,2;--重复记录显示

>CREATE TEMPORARY TABLE tb_name(这里和创建普通表一样);

>DROP [ TEMPORARY ] TABLE [ IF EXISTS ]SQL必知必会,mysql常用语法操作。 tb_name[ ,tb_name2.......];

  4、查看数据库中可用的表:

    >CREATE TABLE tb_name2 SELECT id,name FROM tb_name;

检索在select1中存在而在select2中不存在的行

4、查看数据库中可用的表:

实例:

    >SHOW TABLES;

  3、创建临时表:

SELECT CustomerNo,Class,CustomerState
FROM Customers
WHERE Class='C'
EXCEPT
SELECT CustomerNo,Class,CustomerState
FROM Customers
WHERE CustomerState='销售机会'
ORDER BY 1,2;

>SHOW TABLES;

>DROP TABLE IF EXISTS tb_name;

  5、查看表的结构:

    >CREATE TEMPORARY TABLE tb_name(这里和创建普通表一样);

检索在两个select语句中都存在的行

5、查看表的结构:

7、表重命名:

    >DESCRIBE tb_name;

  4、查看数据库中可用的表:

SELECT CustomerNo,Class,CustomerState
FROM Customers
WHERE Class='C'
INTERSECT
SELECT CustomerNo,Class,CustomerState
FROM Customers
WHERE CustomerState='销售机会'
ORDER BY 1,2;

>DESCRIBE tb_name;

>RENAME TABLE name_old TO name_new;

    也可以使用:

    >SHOW TABLES;

插入一条数据INSERT INTO

也可以使用:

还可以使用:

    >SHOW COLUMNS in tb_name;     //from也可以

  5、查看表的结构:

INSERT INTO Customers(cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country,
cust_contact,
cust_email
)
VALUES('2018062501',
'AMY',
'北仑红联渡口路29号',
'宁波',
'OENW',
'28193',
'China',
NULL,
'277816@qq.com'
);
SELECT * FROM Customers;

>SHOW COLUMNS in tb_name;     //from也可以

>ALTER TABLE name_old RENAME name_new;

  6、删除表:

    >DESCRIBE tb_name;

INSERT INTO 的新用法:插入检索出的数据

6、删除表:

四、修改表:

    >DROP [ TEMPORARY ] TABLE [ IF EXISTS ] tb_name[ ,tb_name2.......];

    也可以使用:

INSERT INTO CustNew(
cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country,
cust_contact,
cust_email
)
SELECT* FROM Customers;


INSERT INTO CustNew(
cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country,
cust_contact,
cust_email
)
SELECT* FROM Customers;

>DROP [ TEMPORARY ] TABLE [ IF EXISTS ] tb_name[ ,tb_name2.......];

1、更改表结构:

    实例:

    >SHOW COLUMNS in tb_name;     //from也可以

使用INSERT SELECT一次插入多行

实例:

>ALTER TABLE tb_name ADD[CHANGE,RENAME,DROP] ...要更改的内容...

    >DROP TABLE IF EXISTS tb_name;

  6、删除表:

INSERT INTO CustNew(
cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country,
cust_contact,
cust_email
)
SELECT* FROM Customers--不管SELECT出多少行都会被插入
WHERE NOT cust_id='2018062501';--排除掉已插入的行,不然会提示主键重复,语句结束
SELECT* FROM CustNew;

>DROP TABLE IF EXISTS tb_name;

实例:

  7、表重命名:

    >DROP [ TEMPORARY ] TABLE [ IF EXISTS ] tb_name[ ,tb_name2.......];

自动创建一个新表并完全复制另一个表的数据

7、表重命名:

>ALTER TABLE tb_name ADD COLUMN address varchar(80) NOT NULL;
>ALTER TABLE tb_name DROP address;
>ALTER TABLE tb_name CHANGE score score SMALLINT(4) NOT NULL;

    >RENAME TABLE name_old TO name_new;

    实例:

SELECT* INTO CustCopy
FROM Customers;--这条语句自动创建CustCopy表并将Customers表中的数据完全复制并填充过去

>RENAME TABLE name_old TO name_new;

五、插入数据:

    还可以使用:

    >DROP TABLE IF EXISTS tb_name;

更新表中数据

还可以使用:

1、插入数据:

    >ALTER TABLE name_old RENAME name_new;

  7、表重命名:

UPDATE CustCopy
SET cust_email='chenlili@intersky.com.cn',
cust_city='广西',
cust_name='陈莉莉'
WHERE cust_id='2018062503';
SELECT *FROM CustCopy;

>ALTER TABLE name_old RENAME name_new;

>INSERT INTO tb_name(id,name,score)VALUES(NULL,'张三',140),(NULL,'张四',178),(NULL,'张五',134);

三、修改表:

    >RENAME TABLE name_old TO name_new;

用表1的数据更新表2的数据

三、修改表:

这里的插入多条数据直接在后边加上逗号,直接写入插入的数据即可;主键id是自增的列,可以不用写。

  1、更改表结构:

    还可以使用:

ALTER TABLE CustNew ADD te VARCHAR(20);--在CustNew表中新建te列
UPDATE CustNew SET CustNew.te=CustCopy.cust_name
FROM CustCopy,CustNew
WHERE CustNew.cust_id=CustCopy.cust_id;--用CustCopy表中的cust_name列值更新CustNew表中的te列,条件是两表cust_id相等

1、更改表结构:

2、插入检索出来的数据:

    >ALTER TABLE tb_name ADD[CHANGE,RENAME,DROP] ...要更改的内容...

    >ALTER TABLE name_old RENAME name_new;

删除某个列的值可以将它设置为NULL

>ALTER TABLE tb_name ADD[CHANGE,RENAME,DROP] ...要更改的内容...

>INSERT INTO tb_name(name,score) SELECT name,score FROM tb_name2;

    实例:

三、修改表:

UPDATE CustCopy
SET cust_address=NULL
WHERE cust_id='2018062502';
SELECT * FROM CustCopy;

实例:

六、更新数据:

    >ALTER TABLE tb_name ADD COLUMN address varchar(80) NOT NULL;

  1、更改表结构:

删除表的某一行

>ALTER TABLE tb_name ADD COLUMN address varchar(80) NOT NULL;

1、指定更新数据:

    >ALTER TABLE tb_name DROP address;

    >ALTER TABLE tb_name ADD[CHANGE,RENAME,DROP] ...要更改的内容...

DELETE FROM CustCopy
WHERE cust_id='2018062504'

>ALTER TABLE tb_name DROP address;

>UPDATE tb_name SET score=189 WHERE id=2;
>UPDATE tablename SET columnName=NewValue [ WHERE condition ]

    >ALTER TABLE tb_name CHANGE score score SMALLINT(4) NOT NULL;

    实例:

TRUNCATE TABLE删除表

>ALTER TABLE tb_name CHANGE score score SMALLINT(4) NOT NULL;

七、删除数据:

四、插入数据:

    >ALTER TABLE tb_name ADD COLUMN address varchar(80) NOT NULL;

使用TRUNCATE TABLE可以快速删除表中的所有记录,而且无日志记录。与DELETE相比,速度更快,使用的系统资源和事务日志资源更少。 使用DELETE语句,系统一次一行地处理要删除的表中的记录,并在事务处理日志中记录相关删除操作。 使用TRUNCATE TABLE语句一次性完成删除与表有关的所有数据页的操作,且不更新事务处理日志,无法用ROLLBACK回滚。

四、插入数据:

1、删除数据:

  1、插入数据:

    >ALTER TABLE tb_name DROP address;

TRUNCATE TABLE a;--删除表a中的所有数据

1、插入数据:

>DELETE FROM tb_name WHERE id=3;

    >INSERT INTO tb_name(id,name,score)VALUES(NULL,'张三',140),(NULL,'张四',178),(NULL,'张五',134);

    >ALTER TABLE tb_name CHANGE score score SMALLINT(4) NOT NULL;

 

>INSERT INTO tb_name(id,name,score)VALUES(NULL,'张三',140),(NULL,'张四',178),(NULL,'张五',134);

八、条件控制:

    这里的插入多条数据直接在后边加上逗号,直接写入插入的数据即可;主键id是自增的列,可以不用写。

四、插入数据:

创建表

这里的插入多条数据直接在后边加上逗号,直接写入插入的数据即可;主键id是自增的列,可以不用写。

1、WHERE 语句:

  2、插入检索出来的数据:

  1、插入数据:

CREATE TABLE Products(
prod_id CHAR(10) NOT NULL,
vend_id CHAR(10) NOT NULL,
prod_name CHAR(254) NOT NULL,
prod_price DECIMAL(8,2) NOT NULL,
prod_desc VARCHAR(1000) NULL
);

CREATE TABLE Orders(
order_num INTEGER NOT NULL,
order_date DATETIME NOT NULL,
cust_id CHAR(10) NOT NULL
);

CREATE TABLE Vendors(
vend_id CHAR(10) NOT NULL,
vend_name CHAR(50) NOT NULL,
vend_address CHAR(50),
vend_city CHAR(50),
vend_state CHAR(5),
vend_zip CHAR(10),
vend_country CHAR(50)
);--不填写NULL和NOT NULL时默认为NULL

2、插入检索出来的数据:

>SELECT * FROM tb_name WHERE id=3;

    >INSERT INTO tb_name(name,score) SELECT name,score FROM tb_name2;

    >INSERT INTO tb_name(id,name,score)VALUES(NULL,'张三',140),(NULL,'张四',178),(NULL,'张五',134);

新建表并指定默认值DEFAULT

>INSERT INTO tb_name(name,score) SELECT name,score FROM tb_name2;

2、HAVING 语句:

五、更新数据:

    这里的插入多条数据直接在后边加上逗号,直接写入插入的数据即可;主键id是自增的列,可以不用写。

CREATE TABLE OrderItems(
order_num INTEGER NOT NULL,
order_item INTEGER NOT NULL,
prod_id CHAR(10) NOT NULL,
quantity INTEGER NOT NULL DEFAULT 1,
item_price DECIMAL(8,2) NOT NULL
);

五、更新数据:

>SELECT * FROM tb_name GROUP BY score HAVING count(*)>2

  1、指定更新数据:

  2、插入检索出来的数据:

更新表ALTER TABLE

1、指定更新数据:

3、相关条件控制符:

    >UPDATE tb_name SET score=189 WHERE id=2;

    >INSERT INTO tb_name(name,score) SELECT name,score FROM tb_name2;

ALTER TABLE Vendors
ADD vend_phone CHAR(20);
SELECT * FROM Vendors;

ALTER TABLE Vendors
DROP COLUMN vend_phone;

ALTER TABLE Vendors
ADD PRIMARY KEY(vend_id);--给vend_id设置主键

>UPDATE tb_name SET score=189 WHERE id=2;

=、>、<、<>、IN(1,2,3......)、BETWEEN a AND b、NOT
AND 、OR
Like()用法中      %  为匹配任意、  _  匹配一个字符(可以是汉字)
IS NULL 空值检测

    >UPDATE tablename SET columnName=NewValue [ WHERE condition ]

五、更新数据:

删除整张表及其表结构

>UPDATE tablename SET columnName=NewValue [ WHERE condition ]

九、MySQL的正则表达式:

六、删除数据:

  1、指定更新数据:

DROP TABLE CustNew;

六、删除数据:

1、Mysql支持REGEXP的正则表达式:

  1、删除数据:

    >UPDATE tb_name SET score=189 WHERE id=2;

--重命名表

1、删除数据:

>SELECT * FROM tb_name WHERE name REGEXP '^[A-D]'   //找出以A-D 为开头的name

    >DELETE FROM tb_name WHERE id=3;

    >UPDATE tablename SET columnName=NewValue [ WHERE condition ]

EXEC sp_rename 'Orders','testi21';
EXEC sp_rename 'testi21','Orders';

SELECT *FROM Orders;
GO;

>DELETE FROM tb_name WHERE id=3;

2、特殊字符需要转义。

七、条件控制:

六、删除数据:

创建视图CREATE VIEW view_name AS...

七、条件控制:

十、MySQL的一些函数:

  1、WHERE 语句:

  1、删除数据:

CREATE VIEW ProductCustomers AS
SELECT cust_name,cust_contact,prod_id
FROM Customers,Orders,OrderItems
WHERE Customers.cust_id=Orders.cust_id
AND Orders.order_num=OrderItems.order_num;
GO;

SELECT * FROM ProductCustomers;

1、WHERE 语句:

1、字符串链接——CONCAT()

    >SELECT * FROM tb_name WHERE id=3;

    >DELETE FROM tb_name WHERE id=3;

删除视图

>SELECT * FROM tb_name WHERE id=3;

>SELECT CONCAT(name,'=>',score) FROM tb_name

  2、HAVING 语句:

七、条件控制:

SELECT * FROM ProductCustomers
WHERE prod_id='0001';
DROP VIEW ProductCustomers;

2、HAVING 语句:

2、数学函数:

    >SELECT * FROM tb_name GROUP BY score HAVING count(*)>2

  1、WHERE 语句:

存储过程(类似自定义函数)

>SELECT * FROM tb_name GROUP BY score HAVING count(*)>2

AVG、SUM、MAX、MIN、COUNT;

  3、相关条件控制符: 

    >SELECT * FROM tb_name WHERE id=3;

SELECT *FROM Customers;
--输出Customers表中所有cust_contact为空的用户个数,利用存储过程结果应该为2;
GO;

CREATE PROCEDURE CusCount
@custc INTEGER OUT--带输出参数的存储过程
AS
SELECT @custc=COUNT(*) FROM Customers
WHERE cust_contact IS NULL;
RETURN @custc;
GO;

3、相关条件控制符:

3、文本处理函数:

    =、>、<、<>、IN(1,2,3......)、BETWEEN a AND b、NOT

  2、HAVING 语句:

新建无参数的存储过程

=、>、<、<>、IN(1,2,3......)、BETWEEN a AND b、NOT

TRIM、LOCATE、UPPER、LOWER、SUBSTRING

    AND 、OR

    >SELECT * FROM tb_name GROUP BY score HAVING count(*)>2

CREATE PROCEDURE MailingListCount AS
DECLARE @cnt INTEGER
SELECT @cnt=COUNT(*) FROM Customers
WHERE NOT cust_contact IS NULL;
RETURN @cnt;
GO;

AND 、OR

4、运算符:

    Linke()用法中      %  为匹配任意、  _  匹配一个字符(可以是汉字)

  3、相关条件控制符: 

调用带输出参数的存储过程

Linke()用法中      %  为匹配任意、  _  匹配一个字符(可以是汉字)

、-、*、

    IS NULL 空值检测

    =、>、<、<>、IN(1,2,3......)、BETWEEN a AND b、NOT

DECLARE @tt INTEGER
EXEC CusCount @tt OUTPUT;
SELECT @tt AS Ccount;

IS NULL 空值检测

5、时间函数:

 八、MySQL的正则表达式:

    AND 、OR

调用无参数的存储过程

八、MySQL的正则表达式:

DATE()、CURTIME()、DAY()、YEAR()、NOW().....

  1、Mysql支持REGEXP的正则表达式:

    Linke()用法中      %  为匹配任意、  _  匹配一个字符(可以是汉字)

DECLARE @ReturnValue INT
EXEC @ReturnValue=MailingListCount;
SELECT @ReturnValue AS Ccount;
GO

1、Mysql支持REGEXP的正则表达式:

十一、分组查询:

    >SELECT * FROM tb_name WHERE name REGEXP '^[A-D]'   //找出以A-D 为开头的name

    IS NULL 空值检测

事务处理TRANSACTION

>SELECT * FROM tb_name WHERE name REGEXP '^[A-D]'  //找出以A-D 为开头的name

1、分组查询可以按照指定的列进行分组:

  2、特殊字符需要转义。

 八、MySQL的正则表达式:

BEGIN TRANSACTION
DELETE FROM Orders;
ROLLBACK TRANSACTION;
GO;

/*
SELECT *FROM Orders;
INSERT INTO Orders VALUES(
'2819','2018-06-25 00:00:00.000','2018062501');
INSERT INTO Orders VALUES(
'2817','2018-06-25 00:00:00.000','2018062502');
INSERT INTO Orders VALUES(
'2818','2018-06-25 00:00:00.000','2018062503');*/

2、特殊字符需要转义。

>SELECT COUNT(*) FROM tb_name GROUP BY score HAVING COUNT(*)>1;

 九、MySQL的一些函数:

  1、Mysql支持REGEXP的正则表达式:

事务处理,COMMIT显式提交

九、MySQL的一些函数:

2、条件使用Having;

  1、字符串链接——CONCAT()

    >SELECT * FROM tb_name WHERE name REGEXP '^[A-D]'   //找出以A-D 为开头的name

BEGIN TRANSACTION
DELETE FROM Orders WHERE cust_id='2018062501'
DELETE FROM Customers WHERE cust_id='2018062501' 
COMMIT TRANSACTION--这两行语句要不一起提交,要不全部不提交,不存在部分执行完成。

1、字符串链接——CONCAT()

3、ORDER BY 排序:

    >SELECT CONCAT(name,'=>',score) FROM tb_name

  2、特殊字符需要转义。

添加保留点SAVE TRANSACTION和回滚至保留点ROLLBACK TRANSACTION

>SELECT CONCAT(name,'=>',score) FROM tb_name

ORDER BY DESC|ASC    =>按数据的降序和升序排列

  2、数学函数:

 九、MySQL的一些函数:

BEGIN TRANSACTION
SELECT *FROM Orders;
DELETE FROM Orders;
INSERT INTO Orders VALUES(
'2819','2018-06-25 00:00:00.000','2018062501');
SAVE TRANSACTION insert1;
INSERT INTO Orders VALUES(
'2817','2018-06-25 00:00:00.000','2018062502');
SAVE TRANSACTION insert2;
INSERT INTO Orders VALUES(
'2818','2018-06-25 00:00:00.000','2018062503');
SAVE TRANSACTION insert3;
ROLLBACK TRANSACTION insert2;--回滚至保留点insert2

2、数学函数:

十二、UNION规则——可以执行两个语句(可以去除重复行)

    AVG、SUM、MAX、MIN、COUNT;

  1、字符串链接——CONCAT()

游标的定义和使用

AVG、SUM、MAX、MIN、COUNT;

十三、全文检索——MATCH和AGAINST

  3、文本处理函数:

    >SELECT CONCAT(name,'=>',score) FROM tb_name

1 DECLARE CustCursor SCROLL CURSOR
2 FOR
3 SELECT cust_id FROM Customers
4 WHERE cust_contact IS NULL;--定义游标CustCursor
5 OPEN CustCursor;--打开游标

3、文本处理函数:

1、SELECT MATCH(note_text)AGAINST('PICASO') FROM tb_name;
2、InnoDB引擎不支持全文检索,MyISAM可以;

    TRIM、LOCATE、UPPER、LOWER、SUBSTRING

  2、数学函数:

如何使用一个已打开的游标

TRIM、LOCATE、UPPER、LOWER、SUBSTRING

十四、视图

  4、运算符:

    AVG、SUM、MAX、MIN、COUNT;

DECLARE @cursor CHAR(10);--定义参数cursor
FETCH FIRST FROM CustCursor INTO @cursor;--将游标的值传入该参数
SELECT @cursor AS Cursortest;--将参数输出并取别名为Cursortest

4、运算符:

1、创建视图

     、-、*、

  3、文本处理函数:

删除游标

、-、*、

>CREATE VIEW name AS SELECT * FROM tb_name WHERE ~~ ORDER BY ~~;

  5、时间函数:

    TRIM、LOCATE、UPPER、LOWER、SUBSTRING

1 CLOSE CustCursor;
2 DEALLOCATE CustCursor;--释放游标占用的资源

5、时间函数:

2、视图的特殊作用:

    DATE()、CURTIME()、DAY()、YEAR()、NOW().....

  4、运算符:

游标的滚动实例

DATE()、CURTIME()、DAY()、YEAR()、NOW().....

a、简化表之间的联结(把联结写在select中);

 十、分组查询:

     、-、*、

DECLARE CustCursor SCROLL CURSOR
FOR
SELECT cust_id FROM Customers
WHERE cust_contact IS NULL;
OPEN CustCursor;
DECLARE @cursor1 CHAR(10);
FETCH NEXT FROM CustCursor INTO @cursor1
WHILE (@@FETCH_STATUS=0)--游标的循环
BEGIN
FETCH NEXT FROM CustCursor INTO @cursor1--将游标指向下一个值
END
SELECT @cursor1 AS TT;

十、分组查询:

b、重新格式化输出检索的数据(TRIM,CONCAT等函数);

   1、分组查询可以按照指定的列进行分组:

  5、时间函数:

关闭游标并释放资源

1、分组查询可以按照指定的列进行分组:

c、过滤不想要的数据(select部分)

    >SELECT COUNT(*) FROM tb_name GROUP BY score HAVING COUNT(*)>1;

    DATE()、CURTIME()、DAY()、YEAR()、NOW().....

CLOSE CustCursor;
DEALLOCATE CustCursor;

>SELECT COUNT(*) FROM tb_name GROUP BY score HAVING COUNT(*)>1;

d、使用视图计算字段值,如汇总这样的值。

  2、条件使用Having;

 十、分组查询:

主键与外键

2、条件使用Having;

十五、使用存储过程:

  3、ORDER BY 排序:

   1、分组查询可以按照指定的列进行分组:

ALTER TABLE Products
ADD PRIMARY KEY(prod_id);--用ALTER语句添加主键

3、ORDER BY 排序:

个人理解,存储过程就是一个自定义函数,有局部变量参数,可传入参数,可以返回值,不过这语法够呆滞的~~~

    ORDER BY DESC|ASC    =>按数据的降序和升序排列

    >SELECT COUNT(*) FROM tb_name GROUP BY score HAVING COUNT(*)>1;

用ALTER设置外键

ORDER BY DESC|ASC    =>按数据的降序和升序排列

1、创建存储过程:

十一、UNION规则——可以执行两个语句(可以去除重复行)

  2、条件使用Having;

ALTER TABLE Orders
ALTER COLUMN cust_id NCHAR(10);--两个表数据类型不同设置外键会报错,因此先更改外键字段的数据类型

ALTER TABLE Orders
ADD CONSTRAINT FK_ord--将Orders.cust_id用CONSTRAINT关键字设置唯一约束
FOREIGN KEY(cust_id)
REFERENCES Customers(cust_id)
GO

十一、UNION规则——可以执行两个语句(可以去除重复行)

>CREATE PROCEDURE pro(
>IN num INT,OUT total INT)
>BEGIN
>SELECT SUM(score) INTO total FROM tb_name WHERE id=num;
>END;

 十二、全文检索——MATCH和AGAINST

  3、ORDER BY 排序:

用ALTER语句设置唯一约束

十二、全文检索——MATCH和AGAINST

***这里的  IN (传递一个值给存储过程),OUT(从存储过程传出一个值),INOUT(对存储过程传入、传出),INTO(保存变量)

  1、SELECT MATCH(note_text)AGAINST('PICASO') FROM tb_name;

    ORDER BY DESC|ASC    =>按数据的降序和升序排列

ALTER TABLE Vendors
ADD UNIQUE(Vend_id);

1、SELECT MATCH(note_text)AGAINST('PICASO') FROM tb_name;

2、调用存储过程:

  2、InnoDB引擎不支持全文检索,MyISAM可以;

十一、UNION规则——可以执行两个语句(可以去除重复行)

用ALTER语句设置检查约束

2、InnoDB引擎不支持全文检索,MyISAM可以;

>CALL pro(13,@total)      //这里的存储过程两个变量,一个是IN一个是OUT,这里的OUT也是需要写上的,不写会出错
>SELECT @total         //这里就可以看到结果了;

 十三、视图

 十二、全文检索——MATCH和AGAINST

ALTER TABLE Products
ADD CHECK(prod_price>0);

十三、视图

3、存储过程的其他操作:

  1、创建视图

  1、SELECT MATCH(note_text)AGAINST('PICASO') FROM tb_name;

添加索引,系统根据索引快速查询数据

1、创建视图

>SHOW PROCEDURE STATUS;      //显示当期的存储过程
>DROP PROCEDURE pro;         //删除指定存储过程

    >CREATE VIEW name AS SELECT * FROM tb_name WHERE ~~ ORDER BY ~~;

  2、InnoDB引擎不支持全文检索,MyISAM可以;

CREATE INDEX prod_name_int
ON Products(prod_name);
SELECT *FROM Products WHERE prod_name='莫匹罗星软膏';
GO;

>CREATE VIEW name AS SELECT * FROM tb_name WHERE ~~ ORDER BY ~~;

十六、使用游标:

  2、视图的特殊作用:

 十三、视图

创建触发器

2、视图的特殊作用:

对这个理解不是很懂,朋友多多指点哦~~~

      a、简化表之间的联结(把联结写在select中);

  1、创建视图

CREATE TRIGGER cust_state
ON Customers
FOR INSERT,UPDATE
AS
UPDATE Customers
SET cust_state=UPPER(cust_state)
WHERE Customers.cust_id=(SELECT cust_id from inserted);--当Customers.cust_state发生INSERT,UPDATE操作时,触发器将自动把cust_state字段内容从小写变成大写

a、简化表之间的联结(把联结写在select中);

1、游标的操作

      b、重新格式化输出检索的数据(TRIM,CONCAT等函数);

    >CREATE VIEW name AS SELECT * FROM tb_name WHERE ~~ ORDER BY ~~;

触发器测试

b、重新格式化输出检索的数据(TRIM,CONCAT等函数);

>CREATE PROCEDURE pro()
>BEGIN
>DECLARE ordername CURSOR FOR
>SELECT order_num FROM orders;
>END;
>OPEN ordername;    //打开游标
>CLOSE ordername;    //关闭游标

      c、过滤不想要的数据(select部分)

  2、视图的特殊作用:

INSERT INTO Customers(
cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_email
)VALUES(
'2018062506',
'Lily',
'世纪大道333号',
'北京',
'ienwoho',
'783428@qq.com'
);
SELECT *FROM Customers;

c、过滤不想要的数据(select部分)

十七、触发器:

      d、使用视图计算字段值,如汇总这样的值。

      a、简化表之间的联结(把联结写在select中);

 

d、使用视图计算字段值,如汇总这样的值。

触发器是指在进行某项指定操作时,触发触发器内指定的操作;

 十四、使用存储过程:

      b、重新格式化输出检索的数据(TRIM,CONCAT等函数);

十四、使用存储过程:

1、支持触发器的语句有DELETE、INSERT、UPDATE,其他均不支持

  个人理解,存储过程就是一个自定义函数,有局部变量参数,可传入参数,可以返回值,不过这语法够呆滞的~~~

      c、过滤不想要的数据(select部分)

个人理解,存储过程就是一个自定义函数,有局部变量参数,可传入参数,可以返回值,不过这语法够呆滞的~~~

2、创建触发器:

  1、创建存储过程:

      d、使用视图计算字段值,如汇总这样的值。

1、创建存储过程:

>CREATE TRIGGER trig AFTER INSERT ON ORDERS FOR EACH ROW SELECT NEW.orser_name;
>INSERT语句,触发语句,返回一个值

    >CREATE PROCEDURE pro(

 十四、使用存储过程:

>CREATE PROCEDURE pro(

3、删除触发器

    >IN num INT,OUT total INT)

  个人理解,存储过程就是一个自定义函数,有局部变量参数,可传入参数,可以返回值,不过这语法够呆滞的~~~

>IN num INT,OUT total INT)

>DROP TRIGGER trig;

    >BEGIN

  1、创建存储过程:

>BEGIN

十八、语法整理:

    >SELECT SUM(score) INTO total FROM tb_name WHERE id=num;

    >CREATE PROCEDURE pro(

>SELECT SUM(score) INTO total FROM tb_name WHERE id=num;

1、ALTER TABLE(修改表)

    >END;

    >IN num INT,OUT total INT)

>END;

ALTER TABLE table_name

(  ADD    column  datatype    [ NULL | NOT NULL ]  [ CONSTRAINTS ]
CHANGE  column   datatype   COLUMNS  [ NULL | NOT NULL ]   [ CONSTRAINTS ]
DROP    column,
。。。。
)

   ***这里的  IN (传递一个值给存储过程),OUT(从存储过程传出一个值),INOUT(对存储过程传入、传出),INTO(保存变量)

    >BEGIN

***这里的  IN (传递一个值给存储过程),OUT(从存储过程传出一个值),INOUT(对存储过程传入、传出),INTO(保存变量)

2、COMMIT(处理事务)

  2、调用存储过程:

    >SELECT SUM(score) INTO total FROM tb_name WHERE id=num;

2、调用存储过程:

>COMMIT;

    >CALL pro(13,@total)      //这里的存储过程两个变量,一个是IN一个是OUT,这里的OUT也是需要写上的,不写会出错

    >END;

>CALL pro(13,@total)      //这里的存储过程两个变量,一个是IN一个是OUT,这里的OUT也是需要写上的,不写会出错

3、CREATE INDEX(在一个或多个列上创建索引)

    >SELECT @total         //这里就可以看到结果了;

   ***这里的  IN (传递一个值给存储过程),OUT(从存储过程传出一个值),INOUT(对存储过程传入、传出),INTO(保存变量)

>SELECT @total         //这里就可以看到结果了;

CREATE INDEX index_name ON tb_name (column [ ASC | DESC ] , .......);

  3、存储过程的其他操作:

  2、调用存储过程:

3、存储过程的其他操作:

4、CREATE PROCEDURE (创建存储过程)

    >SHOW PROCEDURE STATUS;      //显示当期的存储过程

    >CALL pro(13,@total)      //这里的存储过程两个变量,一个是IN一个是OUT,这里的OUT也是需要写上的,不写会出错

>SHOW PROCEDURE STATUS;      //显示当期的存储过程

CREATE PROCEDURE pro([ parameters ])
BEGIN
........
END

    >DROP PROCEDURE pro;         //删除指定存储过程

    >SELECT @total         //这里就可以看到结果了;

>DROP PROCEDURE pro;         //删除指定存储过程

5、CREATE TABLE(创建表)

十五、使用游标:

  3、存储过程的其他操作:

十五、使用游标:

CREATE TABLE tb_name(
column_name  datetype  [ NULL | NOT NULL ]   [ condtraints]   ,
column_name  datetype  [ NULL | NOT NULL ]   [ condtraints]   ,
.......
PRIMARY KEY( column_name )
)ENGINE=[  InnoDB | MyiSAM ]DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

  对这个理解不是很懂,朋友多多指点哦~~~

    >SHOW PROCEDURE STATUS;      //显示当期的存储过程

对这个理解不是很懂,朋友多多指点哦~~~

6、CREATE USER(创建用户)

   1、游标的操作

    >DROP PROCEDURE pro;         //删除指定存储过程

1、游标的操作

CREATE USER user_name [ @hostname ] [ IDENTIFIED BY [ PASSWORD ] 'pass_word' ];

    >CREATE PROCEDURE pro()

十五、使用游标:

>CREATE PROCEDURE pro()

7、CREATE VIEW (在一个或多个表上创建视图)

    >BEGIN 

  对这个理解不是很懂,朋友多多指点哦~~~

>BEGIN

CREATE [ OR REPLACE ] VIEW view_name AS SELECT。。。。。。

    >DECLARE ordername CURSOR FOR

   1、游标的操作

>DECLARE ordername CURSOR FOR

8、DELETE (从表中删除一行或多行)

    >SELECT order_num FROM orders;

    >CREATE PROCEDURE pro()

>SELECT order_num FROM orders;

DELETE FROM table_name [WHERE ......]

    >END;

    >BEGIN 

>END;

9、DROP(永久删除数据库及对象,如视图、索引等)

    

    >DECLARE ordername CURSOR FOR

>OPEN ordername;    //打开游标

DROP DATEBASE | INDEX | PROCEDURE | TABLE | TRIGGER | USER | VIEW  name

    >OPEN ordername;    //打开游标

    >SELECT order_num FROM orders;

>CLOSE ordername;    //关闭游标

10、INSERT (给表添加行)

 

    >END;

十六、触发器:

INSERT INTO tb_name [ ( columns,...... ) ]  VALUES(value1,............);

    >CLOSE ordername;    //关闭游标

    

触发器是指在进行某项指定操作时,触发触发器内指定的操作;

使用SELECT值插入:

十六、触发器:

    >OPEN ordername;    //打开游标

1、支持触发器的语句有DELETE、INSERT、UPDATE,其他均不支持

INSERT INTO tb_name [ ( columns,...... ) ]
SELECT columns , .......   FROM tb_name [ WHERE ...... ] ;

  触发器是指在进行某项指定操作时,触发触发器内指定的操作;

 

2、创建触发器:

11、ROLLBACK(撤销一个事务处理块)

  1、支持触发器的语句有DELETE、INSERT、UPDATE,其他均不支持

    >CLOSE ordername;    //关闭游标

>CREATE TRIGGER trig AFTER INSERT ON ORDERS FOR EACH ROW SELECT NEW.orser_name;

ROLLBACK [  TO  savapointname  ];

  2、创建触发器:

十六、触发器:

>INSERT语句,触发语句,返回一个值

12、SAVEPOINT(为ROLLBACK设置保留点)

    >CREATE TRIGGER trig AFTER INSERT ON ORDERS FOR EACH ROW SELECT NEW.orser_name;

  触发器是指在进行某项指定操作时,触发触发器内指定的操作;

3、删除触发器

SAVEPOINT sp1;

    >INSERT语句,触发语句,返回一个值

  1、支持触发器的语句有DELETE、INSERT、UPDATE,其他均不支持

>DROP TRIGGER trig;

13、SELECT (检索数据,显示信息)

  3、删除触发器

  2、创建触发器:

十七、语法整理:

SELECT column_name,.....FROM tb_name  [ WHERE ]   [ UNION ]    [ RROUP BY ]   [ HAVING ]   [ ORDER BY ]

    >DROP TRIGGER trig;

    >CREATE TRIGGER trig AFTER INSERT ON ORDERS FOR EACH ROW SELECT NEW.orser_name;

1、ALTER TABLE(修改表)

14、START TRANSACTION (一个新的事务处理块的开始)

十七、语法整理:

    >INSERT语句,触发语句,返回一个值

ALTER TABLE table_name

START TRANSACTION

  1、ALTER TABLE(修改表)

  3、删除触发器

(  ADD    column  datatype    [ NULL | NOT NULL ]  [ CONSTRAINTS ]

15、UPDATE(更新一个表中的一行或多行)

    ALTER TABLE table_name

    >DROP TRIGGER trig;

CHANGE  column   datatype   COLUMNS  [ NULL | NOT NULL ]   [ CONSTRAINTS ]

UPDATE tb_name SET column=value,......[ where ]

    (  ADD    column  datatype    [ NULL | NOT NULL ]  [ CONSTRAINTS ]

十七、语法整理:

DROP    column,

       CHANGE  column   datatype   COLUMNS  [ NULL | NOT NULL ]   [ CONSTRAINTS ]

  1、ALTER TABLE(修改表)

。。。。

       DROP    column,

    ALTER TABLE table_name

)

       。。。。

    (  ADD    column  datatype    [ NULL | NOT NULL ]  [ CONSTRAINTS ]

2、COMMIT(处理事务)

    )

       CHANGE  column   datatype   COLUMNS  [ NULL | NOT NULL ]   [ CONSTRAINTS ]

>COMMIT;

  2、COMMIT(处理事务)

       DROP    column,

3、CREATE INDEX(在一个或多个列上创建索引)

    >COMMIT;

       。。。。

CREATE INDEX index_name ON tb_name (column [ ASC | DESC ] , .......);

   3、CREATE INDEX(在一个或多个列上创建索引)

    )

4、CREATE PROCEDURE (创建存储过程)

    CREATE INDEX index_name ON tb_name (column [ ASC | DESC ] , .......);

  2、COMMIT(处理事务)

CREATE PROCEDURE pro([ parameters ])

   4、CREATE PROCEDURE (创建存储过程)

    >COMMIT;

BEGIN

    CREATE PROCEDURE pro([ parameters ])

   3、CREATE INDEX(在一个或多个列上创建索引)

........

    BEGIN

    CREATE INDEX index_name ON tb_name (column [ ASC | DESC ] , .......);

END

    ........

   4、CREATE PROCEDURE (创建存储过程)

5、CREATE TABLE(创建表)

    END

    CREATE PROCEDURE pro([ parameters ])

CREATE TABLE tb_name(

   5、CREATE TABLE(创建表)

    BEGIN

column_name  datetype  [ NULL | NOT NULL ]   [ condtraints]  ,

    CREATE TABLE tb_name(

    ........

column_name  datetype  [ NULL | NOT NULL ]   [ condtraints]  ,

    column_name  datetype  [ NULL | NOT NULL ]   [ condtraints]   ,

    END

.......

    column_name  datetype  [ NULL | NOT NULL ]   [ condtraints]   ,

   5、CREATE TABLE(创建表)

PRIMARY KEY( column_name )

    .......

    CREATE TABLE tb_name(

)ENGINE=[  InnoDB | MyiSAM ]DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

    PRIMARY KEY( column_name )

    column_name  datetype  [ NULL | NOT NULL ]   [ condtraints]   ,

6、CREATE USER(创建用户)

    )ENGINE=[  InnoDB | MyiSAM ]DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

    column_name  datetype  [ NULL | NOT NULL ]   [ condtraints]   ,

CREATE USER user_name [ @hostname ] [ IDENTIFIED BY [ PASSWORD ] 'pass_word' ];

   6、CREATE USER(创建用户)

    .......

7、CREATE VIEW (在一个或多个表上创建视图)

    CREATE USER user_name [ @hostname ] [ IDENTIFIED BY [ PASSWORD ] 'pass_word' ];

    PRIMARY KEY( column_name )

CREATE [ OR REPLACE ] VIEW view_name AS SELECT。。。。。。

   7、CREATE VIEW (在一个或多个表上创建视图)

    )ENGINE=[  InnoDB | MyiSAM ]DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

8、DELETE (从表中删除一行或多行)

    CREATE [ OR REPLACE ] VIEW view_name AS SELECT。。。。。。

   6、CREATE USER(创建用户)

DELETE FROM table_name [WHERE ......]

   8、DELETE (从表中删除一行或多行)

    CREATE USER user_name [ @hostname ] [ IDENTIFIED BY [ PASSWORD ] 'pass_word' ];

9、DROP(永久删除数据库及对象,如视图、索引等)

    DELETE FROM table_name [WHERE ......]

   7、CREATE VIEW (在一个或多个表上创建视图)

DROP DATEBASE | INDEX | PROCEDURE | TABLE | TRIGGER | USER | VIEW  name

   9、DROP(永久删除数据库及对象,如视图、索引等)

    CREATE [ OR REPLACE ] VIEW view_name AS SELECT。。。。。。

10、INSERT (给表添加行)

    DROP DATEBASE | INDEX | PROCEDURE | TABLE | TRIGGER | USER | VIEW  name

   8、DELETE (从表中删除一行或多行)

INSERT INTO tb_name [ ( columns,...... ) ]  VALUES(value1,............);

   10、INSERT (给表添加行)

    DELETE FROM table_name [WHERE ......]

使用SELECT值插入:

    INSERT INTO tb_name [ ( columns,...... ) ]  VALUES(value1,............);

   9、DROP(永久删除数据库及对象,如视图、索引等)

INSERT INTO tb_name [ ( columns,...... ) ]

    使用SELECT值插入:

    DROP DATEBASE | INDEX | PROCEDURE | TABLE | TRIGGER | USER | VIEW  name

SELECT columns , .......  FROM tb_name [ WHERE ...... ] ;

    INSERT INTO tb_name [ ( columns,...... ) ]

   10、INSERT (给表添加行)

11、ROLLBACK(撤销一个事务处理块)

    SELECT columns , .......   FROM tb_name [ WHERE ...... ] ;

    INSERT INTO tb_name [ ( columns,...... ) ]  VALUES(value1,............);

ROLLBACK [  TO  savapointname  ];

   11、ROLLBACK(撤销一个事务处理块)

    使用SELECT值插入:

12、SAVEPOINT(为ROLLBACK设置保留点)

    ROLLBACK [  TO  savapointname  ];

    INSERT INTO tb_name [ ( columns,...... ) ]

SAVEPOINT sp1;

   12、SAVEPOINT(为ROLLBACK设置保留点)

    SELECT columns , .......   FROM tb_name [ WHERE ...... ] ;

13、SELECT (检索数据,显示信息)

    SAVEPOINT sp1;

   11、ROLLBACK(撤销一个事务处理块)

SELECT column_name,.....FROM tb_name  [ WHERE ]  [ UNION ]    [ RROUP BY ]  [ HAVING ]  [ ORDER BY ]

   13、SELECT (检索数据,显示信息)

    ROLLBACK [  TO  savapointname  ];

14、START TRANSACTION (一个新的事务处理块的开始)

    SELECT column_name,.....FROM tb_name  [ WHERE ]   [ UNION ]    [ RROUP BY ]   [ HAVING ]   [ ORDER BY ]

   12、SAVEPOINT(为ROLLBACK设置保留点)

START TRANSACTION

   14、START TRANSACTION (一个新的事务处理块的开始)

    SAVEPOINT sp1;

15、UPDATE(更新一个表中的一行或多行)

    START TRANSACTION

   13、SELECT (检索数据,显示信息)

UPDATE tb_name SET column=value,......[ where ]

   15、UPDATE(更新一个表中的一行或多行)

    SELECT column_name,.....FROM tb_name  [ WHERE ]   [ UNION ]    [ RROUP BY ]   [ HAVING ]   [ ORDER BY ]

    UPDATE tb_name SET column=value,......[ where ]

   14、START TRANSACTION (一个新的事务处理块的开始)

    START TRANSACTION

   15、UPDATE(更新一个表中的一行或多行)

    UPDATE tb_name SET column=value,......[ where ]

 

原文地址:

常用的Mysql数据库操作语句大全

本文由澳门新萄京官方网站发布于数据库网络,转载请注明出处:SQL必知必会,mysql常用语法操作

关键词: