黑马小日子--数据库基础

数据库

一. 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)

);

表数据类型:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值