一、数据库简介
数据库(Database,DB)是按照数据结构来组织,存储和管理数据的仓库。
典型特征:数据的结构化、数据间的共享、减少数据的冗余度,数据的独立性。
关系型数据库:使用关系模型把数据组织到数据表(table)中。现实世界可以用数据来描述。
主流的关系型数据库产品:SQL Server(MS)、MySQL(Oracle)。
数据表:数据表是关系数据库的基本存储结构,二维数据表有行,和列组成,也叫行和字段列。
二、MySQL数据类型(5.5版本)
(1)数值类型
MySQL中除了字符串类型需要设置长度,其他类型都有默认长度.
数值类型 Java中 MySQL中
整型 byte tinyint
short smallint
int int
long bigint
浮点型 float float
double double
字符串类型 String 定长char() ;可变长varchar()
时间日期 date date/time/datetime
三、Sql语句
(1)Sql语句简介
SQL(Structured Query Language):结构化查询语言
SQL是在关系数据库上执行数据操作、检索及维护所使用的标准语言,可以用来查询数据,操纵数据,定义数据,控制数据。
SQL可以分为:
数据定义语言(DDL):Data Definition Language
数据操纵语言(DML):Data Manipulation Language
事务控制语言(TCL):Transaction Control Language
数据查询语言(DQL):Data Query Language
数据控制语言(DCL):Data Control Language
(2)数据定义语言DDL`create,alter,drop`
--数据定义语言DDL(create,alter,drop)
-- 一、数据库相关的DDL
-- 1.创建数据库
CREATE DATABASE mybase;
-- 2.创建数据库并指定字符集
CREATE DATABASE mybase1 CHARACTER SET UTF8;
-- 3.查看所有数据库
SHOW DATABASES;
-- 4.查看当前使用的数据库
SELECT DATABASE();
-- 5.修改数据库
ALTER DATABASE mybase CHARACTER SET UTF8;
-- 6.删除数据库
DROP DATABASE mybase1;
-- 切换数据库
USE mybase;
--二、表相关DDL
创建表
create table exam(
id INT(11) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20),
English INT,
Chinese INT,
Math int
);
查看数据库中所有表
show TABLES;
查看表结构
desc exam;
表的删除
drop table exam;
表的修改(基于exam表)
添加列
ALTER TABLE exam ADD History INT NOT NULL;
修改列的类型、长度、约束
ALTER TABLE exam MODIFY History DOUBLE(7,2);
修改表的列名
ALTER TABLE exam CHANGE History Physics INT NOT NULL;
修改表名
RENAME TABLE exam TO score;
修改表的字符集
ALTER TABLE score CHARACTER SET GBK;
删除列
scoreALTER TABLE score DROP Physics;
ALTER TABLE
-- 三、练习:创建emp表
CREATE TABLE emp(
empno INT PRIMARY KEY AUTO_INCREMENT,
ename VARCHAR(20),
job VARCHAR(20),
mgr int,
hiredate DATE,
sal DOUBLE(7,2),
commit double(5,2),
deptno INT NOT NULL -- 非空约束
);
(3)数据操纵语言DML`update,insert,delete`
-- 数据操纵语言DML(update,insert,delete)
-- 1.插入部分列
INSERT INTO score(id,NAME,English,Chinese,Math) VALUE(1,'Hudie',90,90,90);
INSERT INTO score(id,NAME,English,Chinese) VALUE(NULL,'diedie',91,91);
-- 2.插入所有列
INSERT INTO score VALUES(3,'Shu',80,80,80);
-- 3.修改记录
UPDATE score set Chinese=99; --全表修改
UPDATE score SET Math=100 WHERE id='1';
-- 4.删除记录
DELETE FROM score WHERE id='2';
DELETE FROM score;
-- delete与truncate的区别 √
--TRUNCATE TABLE 删除表的记录:将整个表删除掉,重新创建一个新的表,属于DDL.
--DELETE FROM 删除表的记录:一条一条进行删除,DELETE.
INSERT INTO score VALUES(3,'Shi',80,80,80);
DELETE FROM score;
INSERT INTO score VALUES(NULL,'zhangsan',10,10,10); --不会清空AUTO_INCREMENT值
TRUNCATE TABLE score;
INSERT INTO score VALUES(NULL,'zhangsan',10,10,10); --清空AUTO_INCREMENT的值www.weixiu3721.com。
-- 事务管理:只能作用在DML语句上,如果在一个事务中使用delete删除所有记录,可以找回.
-- 使用delete删除后可以用COMMIT和ROLLBACK找回数据,使用truncate后就找不回来了.
-- delete、truncate、drop的区别 √
delete、truncate、只是删除表的记录,而drop会直接删除表.
(4)数据控制语言DCL`grant,revoke`
-- 数据控制语言DCL(grant,revoke)
-- 主要为用户授予和撤销权限
-- 1.创建用户
-- 2.给用户授权
-- 3.撤销权限
-- 4.查看用户的权限
-- 5.删除用户
-- 6.登录
-- 7.退出登录
来源:oschina
链接:https://my.oschina.net/u/4337072/blog/3333183