1.DELETE语句: DELETE FROM table1 WHERE name='Linc' (无需指定删对象,它会删除一行对象)
2.UPDATE语句: UPDATE table1 SET name='Linc' WHERE age=15 (使用SET关键字,他可以改变一列值)
3.使用运算表达式: UPDATE table1 SET price=price+1 WHERE name='Linc' (是price全部加1)
4.设置Primary Key(主键): CREATE TABLE table1
(
id INT NOT NULL,
name VARCHAR(20) default NULL,
age INT default NULL,
PRIMARY KEY (id)
)
规则:1.PK不能为NULL
2.插入新纪录必须指定PK
3.PK不可被修改
4.PK必须独一无二.用于识别出每条记录
5.关键字AUTO_INCREMENT: CREATE TABLE table1
(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(20) default NULL,
age INT default NULL,
PRIMARY KEY (id)
)
用于是PK id每插入一条新纪录就自动+1
6.DESCRIBE命令: DESCRIBE table1 (显示table1的表格属性)
7.SHOW命令: SHOW TABLES (显示当前数据库的所有表)
SHOW DATABASES (显示所有数据库)
SHOW CREATE TABLE table1 (显示创建table1时的命令)
8.USE命令: USE test (切换到test数据库)
9.DROP TABLE命令: DROP TABLE table1 (删除table1表格)
DROP DATABASE my_database (删除my_database数据库)
10.ALTER命令: ALTER TABLE table1
ADD COLUMN name VARCHAR(20) NOT NULL, (给原有表加入新列并设置为主键)
ADD PRIMARY KEY (name);
ALTER TABLE table1
ADD COLUMN name VARCHAR(20) NOT NULL FIRST(SECOND THIRD...); (将name属性加到第一列的位置)
ADD COLUMN name VARCHAR(20) NOT NULL BEFORE(AFTER) age; (将name属性加到age之前或者之后)
ALTER TABLE table1
RENAME TO test_table; (将表重命名)
ALTER TABLE test_table
CHANGE COLUMN name test_id INT NOT NULL, (修改列名name为test_id)
ADD PRIMARY KEY (test_id);
ALTER TABLE test_table
MODIFY COLUMN test_id VARCHAR(100); (讲test_id数据类型修改为VARCHAR)
ALTER TABLE test_table
DROP COLUMN test_id; (删除test_id列)
11.INSERT INTO my_table (location) values ('Donlin\'s Street'); (字符串内单引号用反斜杠)
12.RIGHT()和LEFT()命令: RIGHT(location, 2)返回location从右数开始的2个字符
LEFT(location, 2)返回location从左数开始的2个字符
13.SUBSTRING_INDEX()命令:SUBSTRING_INDEX(location, ',' 1) (截取location的第一个逗号前的所有内容)
14.UPDATE和取值函数的搭配: UPDATE my_table SET state = RIGHT(location, 2)
15.SQL工具集: SUBSTRING(your_string, start_position, length) 截取字符串的一部分
UPPER(your_string)和LOWER(your_string)分别将字符串改为大小写
REVERSE(your_string)反转字符排序
LTRIM(your_string)和RTRIM(your_string)清除字符串左边或右边的所有空格
LENGTH(your_string)返回字符串的长度
16.通配符%和_: %匹配多个字符如 WHERE name LIKE 'A%x' 可匹配 Alx 和 Alex
_匹配一个字符如 WHERE name LIKE 'A_x' 只可匹配 Alx 不可匹配 Alex
17.IN关键字: WHERE name in ('Alex', 'Jack', 'Bob');
18.ORDER关键字: SELECT namne FROM my_table WHERE age=15 ORDER BY name DESC, age ASC; (按name降序,然后按age升序select出结果)
19.SUM()函数,求和.AVG()求均值
GROUP BY分组操作
mysql> SELECT name, SUM(age) FROM table1 ORDER BY SUM(age) DESC;
+------+----------+
| name | SUM(age) |
+------+----------+
| Jack | 82 |
+------+----------+
1 row in set (0.00 sec)
mysql> SELECT name, SUM(age) FROM table1 GROUP BY name ORDER BY SUM(age) DESC;
+------+----------+
| name | SUM(age) |
+------+----------+
| Jack | 43 |
| Alex | 20 |
| Bob | 19 |
+------+----------+
3 rows in set (0.01 sec)
20.MAX()和MIN()函数.分别求最大值和最小值
COUNT(name) 计算出name列的行数
21.DISTINCT关键字: SELCET DISTINCT name FROM table (找出所有不同的name)
22.LIMIT关键字: SELECT name FROM table LIMIT 5(显示5条记录)
LIMIT 1, 5 (从第2条记录开始,显示5条记录)
LIMIT 1, 1 (只显示第二条记录)
23.创建子表并设置外键和约束
CREATE TABLE sub_table (
int_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
nick_name VARCHAR(20) NOT NULL,
id_fk INT NOT NULL, (这是来自父表的主键,要将其设为外键)
CONSTRAINT table1_id_fk FOREIGN KEY (id_fk) REFERENCES table1 (id)
指定约束名,指定外键并说明外键来源
);
27.AS关键字,
创建只有一列并填充好数据的表
CREATE TABLE profession AS
SELECT profession FROM my_contact
GROUP BY profession ORDER BY profession;
创建有主键id的表并插入profession
CREATE TABLE profession (
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
profession VARCHAR(20)
) AS
SELECT profession FROM my_contact
GROUP BY profession ORDER BY profession;
AS用作别名
1.用别名查询
SELECT profession AS my_pro FROM my_contact
GROUP BY my_pro ORDER BY my_pro;
2.创建表别名
CREATE TABLE profession (
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
profession VARCHAR(20)
) AS
SELECT profession FROM my_contact AS mc
GROUP BY profession ORDER BY profession;
缩写为
SELECT profession FROM my_contact mc
GROUP BY profession ORDER BY profession;
28.以SELECT语句填充新表
INSERT INTO table (profession)
SELECT profession FROM my_contact
GROUP BY profession ORDER BY profession
29.CROSS JOIN命令(交叉联接)
mysql> SELECT * FROM boys;
+------+
| boy |
+------+
| Jack |
| Alex |
| Tony |
| Bob |
| Wade |
+------+
5 rows in set (0.00 sec)
mysql> SELECT * FROM toys;
+---------+
| toy |
+---------+
| Chicken |
| Duck |
| Pig |
| Dog |
+---------+
4 rows in set (0.00 sec)
mysql>
mysql> SELECT b1.boy, b2.toy FROM boys AS b1 CROSS JOIN toys AS b2; //此为交叉联接命令,其中 CROSS JOIN可省略不写
+------+---------+
| boy | toy |
+------+---------+
| Jack | Chicken |
| Jack | Duck |
| Jack | Pig |
| Jack | Dog |
| Alex | Chicken |
| Alex | Duck |
| Alex | Pig |
| Alex | Dog |
| Tony | Chicken |
| Tony | Duck |
| Tony | Pig |
| Tony | Dog |
| Bob | Chicken |
| Bob | Duck |
| Bob | Pig |
| Bob | Dog |
| Wade | Chicken |
| Wade | Duck |
| Wade | Pig |
| Wade | Dog |
+------+---------+
20 rows in set (0.00 sec)
30.INNER JOIN命令
SELECT somecolumns
FROM table1
INNER JOIN //内联接
table2
ON somecondition; //一个条件表达式(比较运算), ON可改为WHERE
例子
SELECT boys.boy, toys.toy
FROM boys INNER JOIN toys
ON boys.toy_id = toys.toy_id;
31.NATURAL JOIN 命令:当一张表外键和另一张表的主键名相同时使用
SELECT boys.boy, toys.toy
FROM boys NATURAL JOIN toys;
32.子查询
SELECT some_column, another_column FROM table1
WHERE column = (SELECT column FROM table2);
1.非关联子查询
SELECT last_name, first_name FROM my_contacts
WHERE zip_code = (SELECT zip_code FROM zip_code_table
WHERE city = 'Beijing");
2.关联子查询与EXIST
SELECT email FROM my_contacts mc
WHERE EXISTS (SELECT * FROM contact_interest ci
WHERE mc.contact_id = ci.contact_id)
AND NOT EXISTS (SELECT * FROM job_current jc
WHERE mc.contact_id = jc.contact_id)
此处子查询用到了外查询的mc缩写符
33.左外联接: LEFT OUTER JOIN
mysql> SELECT * FROM girls;
+---------+-------+--------+
| girl_id | girl | toy_id |
+---------+-------+--------+
| 1 | Kate | 1 |
| 2 | Lily | 3 |
| 3 | Sarah | 3 |
+---------+-------+--------+
3 rows in set (0.00 sec)
mysql> SELECT g.girl, t.toy FROM toys t LEFT OUTER JOIN girls g ON g.toy_id = t.
toy_id;
+-------+---------+
| girl | toy |
+-------+---------+
| Kate | Chicken |
| NULL | Duck |
| Lily | Pig |
| Sarah | Pig |
| NULL | Dog |
+-------+---------+
5 rows in set (0.00 sec)
将左表中的每条记录与右表中的每条记录相匹配,如果有记录不存在,则用NULL表示
34.自联接
SELECT c1.name, c2.name boss FROM clown c1 INNER JOIN clown c2 ON c1.boss_id = c2.id;
将clown当做两张表使用
35.UNION 关键字
SELECT b.boy name FROM boys b
UNION
SELECT g.girl FROM girls g;
将boy和girl的数据联合查询成一列
规则:1.SELECT语句中的列数量必须一致
2.SELECT语句表达式和函数要相同
3.SELECT语句中列数据类型必须是相同或可相互转换的
UNION关键字会自动剔除重复的结果,若要显示重复结果,则使用UNION ALL
36.INTERSECT(交集)与EXCEPT(差集)
使用方法同UNION
INTERSECT返回查询表的交集
EXCEPT返回只出现在第一个查询中而不出现在后面查询的结果
SELECT b.boy name FROM boys b
INTERSECT
SELECT g.girl FROM girls g;
SELECT b.boy name FROM boys b
EXCEPT
SELECT g.girl FROM girls g;
37.使用视图 VIEW
CREATE VIEW boys_list AS
SELECT * FROM BOYS WHERE age = 18 CHECK OPTION; CHECK OPTION表示以后使用该视图进行INSERT或者UPDATE是必须符合WHERE子句 age = 18.
SELECT * FROM boys_list
相当于输入
SELECT * FROM BOYS;
CREATE VIEW 所选出的结果可视为一张虚拟表,他可以用于INSERT UPDATE语句
例如 INSERT INTO boys_list VALUES ('Jack', 18);
删除视图 DROP VIEW boys_list;
视图就像表,查看它可以使用SHOW TABLES或者DESC
38.SQL事务
START TRANSACTION; 开始事务
SELECT UPDATE INSERT....
COMMIT; 提交事务,执行成功,结束事务
或者
ROLLBACK; 取消START与ROLLBACK之间所有事务的执行,并结束事务
分享到:
相关推荐
N11数据库管理工具是一款专为Windows 10操作系统设计的高效、易用的数据库管理应用,它提供了全面的功能,帮助用户轻松管理和操作各种类型的数据库。N11数据库工具不仅适用于初学者,也适合有一定数据库管理经验的...
Oracle数据库课程设计医院系统数据库源代码。包含Java代码和SQL语句。源码中默认使用的数据库为运行的Oracle数据库 如需修改,在java源码/database.propertie中修改即可!Oracle数据库课程设计医院系统数据库源代码...
神通数据库驱动jar,Java 连接神通数据库驱动包(亲测有效)神通数据库驱动jar,Java 连接神通数据库驱动包(亲测有效)神通数据库驱动jar,Java 连接神通数据库驱动包(亲测有效)神通数据库驱动jar,Java 连接神通...
中国高校数据库是一个专门为UCHome等社交网络平台设计的数据库资源,包含了丰富的中国高等教育机构的数据信息。这个数据库的主要目的是为了提供一个全面、准确的高校信息源,以便用户在社区环境中进行交流、分享和...
数据库迁移 3.0 迁移准备 注意:本地网络必须能正常连接到瀚高数据库 有2种方式: 本机和服务器网络 互通,可以直接连接到上文中安装的服务器端的瀚高数据库; 本机和服务器网络 不互通,则需要在本地安装瀚高数据库...
《Oracle 12c数据库基础教程》教学课件—03Oracle数据库管理工具.pdf《Oracle 12c数据库基础教程》教学课件—03Oracle数据库管理工具.pdf《Oracle 12c数据库基础教程》教学课件—03Oracle数据库管理工具.pdf《Oracle...
数据库管理系统相关知识点总结 数据库管理系统(DBMS)是一种软件系统,用于定义、创建、维护和操纵数据库,数据库管理系统是 Database(DB)和 Database System(DBS)的集合体。Database 是存储数据的仓库,...
网吧管理系统数据库设计和相关文档网吧管理系统数据库设计和相关文档网吧管理系统数据库设计和相关文档网吧管理系统数据库设计和相关文档以及相关报表网吧管理系统数据库设计和相关文档网吧管理系统数据库设计和相关...
腾讯云数据库mysql产品认证答案涵盖了mysql数据库、腾讯云、云数据库、mysql数据库认证和腾讯云云数据库产品等方面的知识点,是一份非常重要的认证考试答案,能够帮助考生更好地掌握mysql数据库管理和维护知识。
Access 2010数据库引擎是Microsoft Office 2010套装中的一部分,它提供了对多种数据库格式的支持,包括但不限于Access数据库(.mdb和.accdb)以及通用的OLE DB和ODBC数据源。这个数据库引擎被称为Jet或者ACE(Access...
"国家开放大学 MySQL数据库应用实验训练1 在MySQL中创建数据库和表" 本实验训练旨在让学生掌握 MySQL 中的数据库和表的创建过程。 MySQL 是一种关系型数据库管理系统,广泛应用于各种领域。为提高学生的实践能力,...
2. (分值:1.0 分)安装MS SQL Server 时,系统自动建立几个数据库,其中有一个数据库被删除后,不影响系统的正常运行,这个数据库是()。 A: master 数据库 B: model 数据库 C: tempdb 数据库 D: pubs 数据库序号...
PostgreSQL 10数据库生成文档工具是一款高效实用的软件,专为PostgreSQL 10数据库设计,旨在简化数据库管理和文档编制工作。通过该工具,用户能够轻松地从数据库中提取信息,生成详细的文档,以便更好地理解和维护...
根据提供的信息,我们可以推断出这是一本关于数据库设计的教程书籍,并且是其第二版。由于具体的页面内容并未给出,我们将基于标题、描述及标签中的信息,对可能涉及的关键知识点进行归纳总结。 ### 数据库设计的...
最新数据进行整理,包含小学、初中、高中 大约27万+条数据,更可以根据自己需要随时通过数据库进行添加 使用说明: 使用数据库导入工具导入 mysql数据库即可。如需其他数据库如nosql 请自行转换即可。 此数据库包含...
H2就不做很多介绍了。资源包内容列表是我进行H2预研是收集的H2资料,应该是最全面的的了: 1、h2.pdf (H2 API) 2、h2-1.3.173.jar (截止2013-8-15最新的H2.jar) 3、h2-2013-07-28.zip (截止...13、H2数据库使用.doc
数据库原理及应用是信息技术领域中的核心课程之一,它主要探讨如何有效地存储、管理和检索数据,以支持各种业务和信息系统。本书详细介绍了数据库的基础概念、设计原则以及实际应用,旨在帮助读者深入理解数据库的...
Dao Jet数据库引擎是一种用于Windows操作系统的数据库管理工具,它提供了数据存储、管理和访问的功能。在Windows环境中,数据库引擎是应用程序与数据库交互的核心组件,允许开发者和用户执行SQL查询、存储和检索数据...
实现上面设计的数据库,构造数据填入数据库,写出SQL语句测试增删改查,提交你创建数据库、添加数据以及测试的所有SQL语句及其运行结果; 用JD K编写一个客户端程序(命令行或图形化方式都可以),实现你在上面分析...