黑马程序员技术交流社区

标题: SQL&事务 [打印本页]

作者: 卿心帝王    时间: 2019-8-14 14:58
标题: SQL&事务
创建数据库:        CREATE DATABASE  数据库名;
判断数据库是否已经存在,不存在则创建数据库        CREATE DATABASE IF NOT EXISTS  数据名;

创建数据库并指定字符集:
CREATE DATABASE  数据库名 CHARACTER SET ;

6.3.1  修改数据库默认的字符集:
ALTER DATABASE  数据库名 DEFAULT CHARACTER SET  字符集;

删除数据库的语法:        DROP DATABASE
查看正在使用的数据库 :                 SELECT DATABASE(); 使用的一个 mysql  中的全局函数
使用/切换数据库:                USE  数据库名;

创建表的格式:
CREATE TABLE  表名 (
字段名 1  字段类型 1,
字段名 2  字段类型 2
);

创建表的关键字  说明
CREATE  创建
TABLE  表

查看某个数据库中的所有表:                SHOW TABLES;
查看表结构:                DESC  表名;
查看创建表的 SQL 语句:                SHOW CREATE TABLE  表名
语法:                 CREATE TABLE  新表名 LIKE  
判断表是否存在,如果存在则删除表                DROP TABLE IF EXISTS  表名
添加表列 ADD  :        ALTER TABLE  表名 ADD  列名  
修改列类型 MODIFY:                ALTER TABLE  表名 MODIFY  列名  新的类型
修改列名 CHANGE:                ALTER TABLE  表名 CHANGE  旧列名  新列名  类型
删除列 DROP:                ALTER TABLE  表名 DROP  列名
修改表名:                RENAME TABLE  表名 TO  新表名
修改字符集 character set:                ALTER TABLE  表名 character set  字符集
插入记录:
INSERT [INTO]  表名 [ 字段名] VALUES ( 字段值)
INSERT INTO  表名:表示往哪张表中添加数据
( 字段名 1,  字段名 2, …) : 要给哪些字段设置值
VALUES (值 值 1, 值 值 2, …) : 设置具体的值

所有的字段名都写出来:
INSERT INTO  表名 ( 字段名 1,  字段名 2,  字段名 3…) VALUES (值 值 1, 值 值 2, 值 值 3);

不写字段名:                INSERT INTO  表名 VALUES (值 值 1, 值 值 2, 值 值 3…);

插入部分数据:
INSERT INTO  表名 ( 字段名 1,  字段名 2, ...) VALUES (值 值 1, 值 值 2, ...);

更新表记录:
UPDATE  表名 SET  列名= 值 [WHERE  条件表达式]
UPDATE:  需要更新的表名
SET:  修改的列值
WHERE:  符合条件的记录才更新
你可以同时更新一个或多个字段。
你可以在 WHERE  子句中指定任何条件。

不带条件修改数据:                UPDATE  表名 SET  字段名= 值; --  修改所有的行
带条件修改数据:                UPDATE  表名 SET  字段名= 值 WHERE  字段名= 值;

删除表记录:
DELETE FROM  表名 [WHERE  条件表达式]
如果没有指定 WHERE  子句,MySQL  表中的所有记录将被删除。
你可以在 WHERE  子句中指定任何条件

不带条件删除数据:                DELETE FROM

带条件删除数据:                DELETE FROM  表名 WHERE  字段名=值

使用 truncate 删除表中所有记录:                TRUNCATE TABLE

SELECT  列名 FROM  表名 [WHERE  条件表达式]:
1)  SELECT  命令可以读取一行或者多行记录。
2)  你可以使用星号(* )来代替其他字段,SELECT  语句会返回表的所有字段数据
3)  你可以使用 WHERE

查询指定列
  查询指定列的数据,多个列之间以逗号分隔
SELECT  字段名 1,  字段名 2,  字段名 3, ... FROM

对列指定别名:                        SELECT  字段名 1 AS  别名,  字段名 2 AS  别名... FROM  
对列和表同时指定别名:        SELECT  字段名 1 AS  别名,  字段名 2 AS  别名... FROM  表名 AS
查询指定列并且结果不出现重复数据:                SELECT DISTINCT  字段名 FROM
某列数据和固定值运算:                        SELECT  列名 1 +  固定值 FROM  
某列数据和其他列数据参与运算:                SELECT  列名 1 +  列名 2 FROM  表名;
条件查询的语法:                SELECT  字段名 FROM  表名 WHERE  条件

比较运算符                                                          说明
> 、< 、<= 、>= 、= 、<>                          <>在 SQL 中表示不等于,在 mysql 中也可以使用!=
没有==
BETWEEN...AND                                          在一个范围之内,如:between 100 and 200
相当于条件在 100 到 200 之间,包头又包尾
IN( 集合)                                                          集合表示多个值,使用逗号分隔
LIKE                                                         ' 张%'  模糊查询
IS NULL                                                  查询某一列为 NULL 的值,注:不能写=NULL

逻辑运算符                                                  说明
and  或 &&                                  与SQL 中建议使用前者,后者并不通用。
or  或 ||                                          或
not  或 !                                          非

in 关键字:                SELECT  字段名 FROM  表名 WHERE  字段 in ( 数据 1,  数据 2...);
范围查询        :                BETWEEN 值 值 1 AND 值 值 2
like 关键字:                LIKE  表示模糊查询

通配符                          说明
%                                  匹配任意多个字符串
_                                  匹配一个字符


数据库的三大范式
第 1  范式                 原子性,每列不可再拆分
第 2  范式                 不产生局部依赖,表中每一列都完全依赖于主键。
第 3  范式                  不产生传递,表中每一列都直接依赖于主键

隐式内连接:看不到 JOIN 关键字,条件使用 WHERE 指定
                      SELECT  字段名 FROM  左表,  右表 WHERE

显示内连接:使用 INNER JOIN ... ON 语句, 可以省略 INNER
SELECT  字段名 FROM  左表 [INNER] JOIN  右表 ON  条件

左外连接:使用 LEFT OUTER JOIN ... ON,OUTER 可以省略
SELECT  字段名 FROM  左表 LEFT [OUTER] JOIN  右表 ON

右外连接:使用 RIGHT OUTER JOIN ... ON,OUTER 可以省略
SELECT  字段名 FROM  左表 RIGHT [OUTER ]JOIN  右表 ON  条件

子查询的概念:
1) 一个查询的结果做为另一个查询的条件
2) 有查询的嵌套,内部的查询称为子查询
3) 子查询要使用括号 :SELECT  查询字段 FROM  (子查询)  表别名 WHERE  条件;



JDBC  概念:Java DataBase Connectivity  Java 数据库连接, Java语言操作数据库
JDBC  规范定义 接口 ,具体的实现由各大数据库厂商来实现。
JDBC 是 Java 访问数据库的标准规范,真正怎么操作数据库还需要具体的实现类,也就是数据库驱动。每个
数据库厂商根据自家数据库的通信格式编写好自己数据库的驱动。所以我们只需要会调用 JDBC 接口中的方法即
可,数据库驱动由数据库厂商提供。

DriverManager  类 :                 1) 管理和注册数据库驱动
2) 得到数据库连接对象
Connection  接口  一个连接对象,可用于创建 Statement 和 PreparedStatement 对象

Statement  接口  一个 SQL 语句对象,用于将 SQL 语句发送给数据库服务器。

PreparedStatemen  接口 一个 SQL 语句对象,是 Statement 的子接口
ResultSet  接口  用于封装数据库查询的结果集,返回给客户端 Java 程序








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2