数据库
一. MySQL简介:
a) 数据库简介:
i. SQL Server 不跨平台
ii. Oracle 跨平台, java编写,市场占有率最多
iii. DB2 IBM的,java编写,跨平台
b) MySql的安装:
i. Shell>window命令
Mysql>mysql命令,(windows中不区分大小写,)
登录数据库:
Mysql -u root -p 你的密码
查看已安装的数据库:
Show databases ;
基本sql语法(SQL 格式化查询语言)
DDL(定义数据库和表结构的语句)
数据库操作: 1,创建一个名为mydb1的数据库 Create database mydb1; 2.查看数据库创建细节: Show create database mydb1; 3.创建一个使用gbk字符集的mydb2数据库。 Create database mydb2 character set gbk; 4.创建一个使用utf8字符集,并带校对规则的mydb3数据库 Creat database mydb3 character set utf8 collate utf8_general_ci; 5.查看当前数据库服务器中的所有数据库 Show databases; 6.删除前面创建的mydb1数据库 Drop database mydb1; 7.查看服务器中的数据库,并把mydb2库的字符集修改为utf8; Alter database mydb2 character set utf8 collate utf8_general_ci; 8.备份数据库test(不会备份数据库名,只会备份数据库中的表结构和表中的记录) shell>mysqldump -u root -psorry test>d:\test.sql 9.恢复数据库test(不会恢复数据库名,只会恢复数据库中的表结构和表中的记录) 恢复前要先创建数据库的名称 mysql>CREATE DATABASE test; 选择要恢复的数据库 mysql>USE test; 恢复备份的数据 mysql>SOURCE d:/test.sql; 表操作: 1.创建表: Create table employee( Id int, Name varchar(200), Gender varchar(2); Birthday date, Entry_date date; Job varchar(100), Salary float(M,d), M指定显示长度,d指定小数位数 );
2.查看当前数据库中的所有表格 Show tables; 3.在上面员工表的基本上增加一个image列 Alter table employee add (image blob); 4.查看表的字段 Desc employee; 5.修改job列,使其长度为60 Alter table employee modify job varchar(60); 6.删除gender列 Alter table employee drop gender, 7.表名改为user Rename table emplyee to user; 8.修改表的字符集为utf-8 Alter table user character set utf8; 9.列名name修改为username Alter table user change name username(200); |
DML(操作对象是表中的记录数据。增加、删除、修改。Data Manage Language)
增加:INSERT。字符和日期类型数据要用单引号引起来。
1.使用insert语句向表中插入三个员工的信息 Insert into user (id,username,birthday,entry_data,job,salary)values (1,'jiangnan','1989-10-06','2012-07-10','coder',8000); |
约束
主键约束: primary key 不能为空,不能重复
非空约束: nut null 不能为空
自动增长: auto _increment
外键约束: constraint dept_id_fk foreign key (dept_id) references department(id)
dept_id_fk : 给外键一个命名
foreign key : 外键声明
dept_id : 指定外键对应表中的dept_id字段
department(id): 指定这个外键参考于department表中的id字段
多表连接:
一对多连接: Create table department( Id int primary key, Name varchar(100) ); Create table employee( Id int primary key, Name varchar(100), Salaryfloat, dept_id int, Constraint dept_id_fk foreing key(dept_id) references department(Id) ); |
多对多: //教师表 Create table teacher( Idintprimarykey, Namevarchar(100) ); //学生表 Createtablestudent( Idint primarykey, Namevarchar(100), ); //第三方表 Create table teacher_student( T_id int, S_id int, Primary key (T_id,S_id), Constraint T_id_fk foreign key (T_id) references teacher(Id), Constraint S_id_fk foreigns key(S_id) references studnet(Id) ); |
表数据类型: |