`
chinagdvea
  • 浏览: 130569 次
  • 性别: Icon_minigender_1
  • 来自: 韶关
社区版块
存档分类
最新评论

数据库

 
阅读更多
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数据库管理工具_n11_win10_n11数据库工具_N11数据库_n11数据库_

    N11数据库管理工具是一款专为Windows 10操作系统设计的高效、易用的数据库管理应用,它提供了全面的功能,帮助用户轻松管理和操作各种类型的数据库。N11数据库工具不仅适用于初学者,也适合有一定数据库管理经验的...

    Oracle数据库课程设计医院系统数据库源代码.zip

    Oracle数据库课程设计医院系统数据库源代码。包含Java代码和SQL语句。源码中默认使用的数据库为运行的Oracle数据库 如需修改,在java源码/database.propertie中修改即可!Oracle数据库课程设计医院系统数据库源代码...

    神通数据库驱动jar,Java 连接神通数据库驱动包(亲测有效)

    神通数据库驱动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 12c数据库基础教程》教学课件—03Oracle数据库管理工具.pdf《Oracle...

    数据库管理系统 1.数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是( )。

    数据库管理系统相关知识点总结 数据库管理系统(DBMS)是一种软件系统,用于定义、创建、维护和操纵数据库,数据库管理系统是 Database(DB)和 Database System(DBS)的集合体。Database 是存储数据的仓库,...

    网吧管理系统数据库设计

    网吧管理系统数据库设计和相关文档网吧管理系统数据库设计和相关文档网吧管理系统数据库设计和相关文档网吧管理系统数据库设计和相关文档以及相关报表网吧管理系统数据库设计和相关文档网吧管理系统数据库设计和相关...

    腾讯云数据库mysql产品认证答案

    腾讯云数据库mysql产品认证答案涵盖了mysql数据库、腾讯云、云数据库、mysql数据库认证和腾讯云云数据库产品等方面的知识点,是一份非常重要的认证考试答案,能够帮助考生更好地掌握mysql数据库管理和维护知识。

    Access 2010数据库引擎

    Access 2010数据库引擎是Microsoft Office 2010套装中的一部分,它提供了对多种数据库格式的支持,包括但不限于Access数据库(.mdb和.accdb)以及通用的OLE DB和ODBC数据源。这个数据库引擎被称为Jet或者ACE(Access...

    国家开放大学 MySQL数据库应用 实验训练1 在MySQL中创建数据库和表

    "国家开放大学 MySQL数据库应用实验训练1 在MySQL中创建数据库和表" 本实验训练旨在让学生掌握 MySQL 中的数据库和表的创建过程。 MySQL 是一种关系型数据库管理系统,广泛应用于各种领域。为提高学生的实践能力,...

    SQL数据库试题及答案

    2. (分值:1.0 分)安装MS SQL Server 时,系统自动建立几个数据库,其中有一个数据库被删除后,不影响系统的正常运行,这个数据库是()。 A: master 数据库 B: model 数据库 C: tempdb 数据库 D: pubs 数据库序号...

    postgresql10数据库生成文档工具

    PostgreSQL 10数据库生成文档工具是一款高效实用的软件,专为PostgreSQL 10数据库设计,旨在简化数据库管理和文档编制工作。通过该工具,用户能够轻松地从数据库中提取信息,生成详细的文档,以便更好地理解和维护...

    数据库设计教程(第二版)pdf

    根据提供的信息,我们可以推断出这是一本关于数据库设计的教程书籍,并且是其第二版。由于具体的页面内容并未给出,我们将基于标题、描述及标签中的信息,对可能涉及的关键知识点进行归纳总结。 ### 数据库设计的...

    全国中小学数据库大全mysql

    最新数据进行整理,包含小学、初中、高中 大约27万+条数据,更可以根据自己需要随时通过数据库进行添加 使用说明: 使用数据库导入工具导入 mysql数据库即可。如需其他数据库如nosql 请自行转换即可。 此数据库包含...

    H2 Database(H2内存数据库)

    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数据库引擎

    Dao Jet数据库引擎是一种用于Windows操作系统的数据库管理工具,它提供了数据存储、管理和访问的功能。在Windows环境中,数据库引擎是应用程序与数据库交互的核心组件,允许开发者和用户执行SQL查询、存储和检索数据...

    快餐厅数据库大作业.rar

    实现上面设计的数据库,构造数据填入数据库,写出SQL语句测试增删改查,提交你创建数据库、添加数据以及测试的所有SQL语句及其运行结果; 用JD K编写一个客户端程序(命令行或图形化方式都可以),实现你在上面分析...

Global site tag (gtag.js) - Google Analytics