MySQL数据库学习之基本命令——数据表的操作

时间:2022-03-19 22:14:20

1net start mysql 首先要启动MySQL服务,所以得用这个命令net stop mysql 关闭mysql服务。

2msyql -h localhost -u root -p -h后面参数是服务器的主机地址,输入localhost或者127.0.0.1-u指的是登录数据库的用户名 -p指的是用户密码)

3show databases;  用于查看存在的数据库

    create database database_name;用于创建数据库

    drop database database_name;用于删除数据库

4、创建表

create table table_name(

字段名1 ,数据类型【约束】【默认值】,

字段名2 ,数据类型【约束】【默认值】,

字段名3 ,数据类型【约束】【默认值】,

........

【表级别约束函数】

;

5、使用主键约束(单字段主键、多字段联合主键)

A.在定义列时同时制定主键

字段名 数据类型 primary key [默认值]

B. 在定义完所有的列再指定主键

[constraint  <约束名>] primary key [字段名]

 

6、使用非空约束唯一性约束(要求该列唯一,允许为空,但是只能出现一个空值)

字段名 数据类型 not null

字段名 数据类型 unique   或者 在最后 [constraint <约束名> unique <字段名>

 

7、默认约束

字段名 数据类型 default 默认值

 

8、表的属性值自动增加

字段名 数据类型 atuo_increment

 

9、查看数据表结构

DESCRIBE table_name;

DESC table_name;

 

10、查看表的详细结构

Show create table table_name \G; (其中\G 参数是为了使显示的结构更加直观,易于观察)

 

11、修改数据表

修改:

1.(修改表名)

alter table table_name1 rename table_name2;

2.(修改字段的数据类型)

Alter table table_name modify 字段名 数据类型;

3. (修改字段名)

Alter table table_name change 旧字段名 新字段名 数据类型;

补充:change也可以只修改数据类型,和modify达到相同的效果,将新旧字段名设为一样,只修改数据类型。

添加:

4. 添加无完整性约束条件字段

Alter table table_name add managerId int (20);(add后面为自定义的添加字段)

5. 添加有完整性约束条件字段

Alter table table_name add column1 varchar(23) not null;(add后面为自定义的添加字段和约束)

6.在表的第一列添加一个字段

Alter table table_name add column2 int11first;

7.在表指定列之后添加一个字段

Alter table table_name add column3 int(11) after column2;

8.删除字段

Alter table table_name drop 字段名

9. 修改字段的排列位置

Alter table table_name modify 字段1 数据类型 first|after 字段2;

10. 更改表的引擎

Alter table table_name engine=存储引擎名;

11. 删除表的外键操作

Alter table table_name drop foreign key 外键约束名

12. 删除没有被关联的表

Drop table [if exists] table1,table2,table3.....tablen;

13. 删除被关联的表

如果有关联约束,如外键约束,则先把外键约束删掉,再重新过来把表删除掉

 

Create database company;

Use company;

Create table offices(

officeCode int(10) primary key not null unique,

city varchar(50) not null,

address varchar(50),

country varchar(50) not null,

postalCode varchar(15) unique

);

 实例一:在进行表的修改全过程可以采用desc table_name;进行查看是否变化)

Create table employees(

employeeNumber int(11) primary key not null unique auto_increment,

lastName varchar(50) not null,

fistName varchar(50) not null,

mobile varchar(25) unique,

officeCode int(10) not null,

jobTitle varchar(50) not null,

Birth datetime not null,

Note varchar(255),

Sex varchar(5) ,

Constraint fk_emp_off foreign key (officeCode) references offices(officeCode)

);

Alter table employees modify mobile varchar(25) after officeCode;

Alter table employees change Birth employee_birth datetime;

Alter table employees modify sex char(1) not null;

Alter table employees drop note;

Alter table employees add favorite_activity varchar(100);

Alter table employees drop foreign key fk_emp_off ;

Drop table offices;

解惑:

1、表删除时需谨慎

2、每个表不一定要有主键,但是多表进行连接操作时需要用到主键

3、并不是每个表都可以选择存储引擎。外键约束是用来保证参照完整性,如果表需要关联外键,却指定了不同的存储引擎,这些表之间是不能创建外键约束。简言之,存储引擎不同的表示不能创建外键约束的。

4、Auto_increment 约束的字段默认是从1开始的,可以指定第一条插入记录自增字段的

实例二:

Create database Market;

Use Market;

Create table customers(

c_num int(11) primary key not null unique auto_increment,

c_name varchar(50),

c_contact varchar(50),

c_city varchar(50),

c_birth datetime not null

);

Alter table customers modify c_contact varchar(50)  after c_birth;//修改字段顺序

Alter table customers modify c_name varchar(70);//修改字段数据类型

Alter table customers change  c_contact  c_phone varchar(50);//修改字段名字

Alter table customers add c_gender char(1);//添加字段

Alter table customers rename customers_info;//修改表名

Alter table customers_info drop c_city varchar(50);//删除字段

Alter table  customers_info  engine=MyISAM;//修改引擎

 

Create table orders(

o_num int(11) primary key not null unique auto_increment,

o_date date,

c_id varchar(50),

Constraint fk_em_or foreign key(o_num) references customers_info(c_num)//创建外键约束

);

Alter table orders drop  foreign key fk_em_or;//删除外键约束

Drop table customers_info;//删除表