-- 数据库: 2 3属于物理型数据库(关机还在)
-- MySQL/Oracle 关系(一对一 一对多 多对多)型数据库
-- 文档型数据库 MongoDB (名词对的形式出现 name :tom)
-- 内存型数据库 redis
-- SQL结构化查询语言
-- 在数据库中是以表(table)的形式来组织数据的
-- Mysql中的数据类型:
1. int 整形
2. char 字符型 表示固定的文本 例如:name:char(10) tom+7个空格=10
3. varchar 字符型 表示可变的文本(常用) 例如:name varchar(10) tom
4. float/double 浮点型(小数)
5. date 日期类型 可以存储年月日的时间(重要)
6. time 时间类型 表示 时:分:秒
7. datetime 表示 年-月-日 时:分:秒(重要)
-- select 表示查询 *表示所有的信息 from 从哪张表查询 person 表名
select id,username from person
--查询指定列
select * from perso
SELECT age,school from stu
-- 使用命令创建表 create创建 table表 person表名
-- not null 非空(必须填东西)AUTO_INCREMENT id列自动递增 DEFAULT NULL 默认为空
-- PRIMARY KEY ('id')表示将id列定义为主键(非空并且唯一)
-- 你看到的所有的蓝色英文单词都可以称为关键字 (具有特殊意义的单词)
-- 约束:表中对数据输入的限制,保证数据录入的准确性 NOT NULL PRIMARY KEY
-- 常用的约束: primary key(主键约束),foreign key(外键约束),not null(非空约束),
-- unique(唯一键)(与主键的区别,可以为空null值),check检查约束0--120 就只能查0-120 叫检查约束
CREATE TABLE `person` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`birthday` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
)
-- 创建一个员工表(Employee),表中的列会包含
员工的编号(empno)
员工的姓名(ename)
员工的职位(job)
员工的工资(salary)
员工所在部门的编号(depton)
并将员工的编号设为主键
创建表的规范:
1. 不能使用中文,只能使用英文和数字,不能以数字开头
2. 表名中不能出现空格
3. 表名不能使用SQL中的关键字
CREATE TABLE employee1(
empno int(11) NOT NULL AUTO_INCREMENT,
ename varchar(255) DEFAULT NULL,
job varchar(255) DEFAULT NULL,
salary FLOAT DEFAULT NULL,
deptno int(11) DEFAULT NULL,
PRIMARY KEY (empno)
)
-- 创建部门表
CREATE TABLE dept1(
deptno int(11) NOT NULL,
dname VARCHAR(255),
location VARCHAR(255),
PRIMARY KEY(deptno)
)
-- 重点的内容:主键与外键(约束) 外键列要参照主表中的主键 体现表之间的关联关系(1对多 1:N)
-- 删除表
DROP TABLE person(表的名称)
DROP TABLE dept1
DROP TABLE employee1
-- 清空表的数据
TRUNCATE person
-- 区别
-- DROP TABLE(删除整个表:物理删除,不能恢复)
-- TRUNCATE TABLE(删除表中的数据:物理删除,不能恢复)
-- DELETE FROM TABLE (清空表中所有的数据:DELETE属于DML操作,删除之后的数据可以通过回滚恢复)
-- 查询表中的数据
SELECT * FROM person
-- SQL的语句分类
-- 1.DDL(数据定义语言) CREATE (创建) DROP (删除) TRUNCATE ( 清空表数据)
-- 2.DML(数据操作语句) INSERT ( 添加) UPDATE (修改) DELETE (删除)
语法
INSERT INTO 表名称 VALUES (值1, 值2,....)
-- 向dept中添加一条数据
SELECT * FROM stu
INSERT INTO stu VALUES(3,'jazz',30,'forknwo');
-- 向dept中添加插入的列
INSERT INTO stu(id,name,age) VALUES(4,'java',40);
-- 如果在添加数据的时候不想添加id,想让id是自动递增的,我们需要将id设置为自增列(自动加1)
TRUNCATE TABLE stu
-- 自动递增
INSERT INTO stu(name,age) VALUES('java',40);
-- 我们也可以指定所要插入数据的列:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
-- 向dept中添加一条数据
INSERT INTO dept VALUES(50,'bob','shenyang');
INSERT INTO dept VALUES(60,'tob','shenyang');
select * from dept(查询列表dept)
INSERT INTO dept(deptno,loc) VALUES (70,'shenyang' );
INSERT INTO dept(deptno,dname,loc) VALUES (71,'DDWE','shenyang');
-- DELETE FROM 表名称 WHERE 列名称 =值 表示删除
SELECT * FROM stu
DELETE FROM stu where id =10
DELETE FROM dept WHERE deptno=71;(删除某一行)
-- 修改 UPDATE 表名称 SET 列名称1 = 新值1,列名称2=新值2 WHERE 列名称 = 某值
UPDATE stu SET age = 40 WHERE id = 9
-- 3.TCL(事物控制语句) COMMIT (提交 ) ROLLBACK ( 回滚)
-- 事物:涉及到 增 删 改 不包括查询
-- 就是一系列的操作,这一系列操作中如果有一个操作失败,就会取消之前所有的操作
-- 事物解决的问题:
-- 1.数据库中数据的同步
-- 2.让我们添加 修改 删除数据永久生效
--
--
-- 4.DQL(数据查询语句) SELECT (查询)