表的创建和操作

1、语法

create table <表明>(

  <字段1><类型1>,

  .....

  <字段n><类型n>

  key primary(主键列名)

       key index_普通索引列名(普通索引列名)

2、创建表的实例

create table student(
    id int(4) not null ,
    name char(20) not null,
    ege tinyint(2) not null defaut '0',
    dept varchar(16) defaut null
);

3、产看表结构

方法一、

复制代码
desc test.student;

+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| Sno | int(10) | NO | PRI | NULL | |
| Sname | char(16) | NO | MUL | NULL | |
| Ssex | char(2) | NO | | NULL | |
| Sege | tinyint(2) | NO | | 0 | |
| Sdept | varchar(16) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

复制代码

方法二、

复制代码
show columns from test.student;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| Sno | int(10) | NO | PRI | NULL | |
| Sname | char(16) | NO | MUL | NULL | |
| Ssex | char(2) | NO | | NULL | |
| Sege | tinyint(2) | NO | | 0 | |
| Sdept | varchar(16) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

在表创建后如需在指定指定的位置在插入列
alter table student add Sgrade int(2) not null COMMENT'年级' after Sage;
如果是想将列插入到第一列则用first
复制代码
root@leadchina 03:38:16->alter table student add qq int(10) first;

删除对应的列(字段)——Sgrade

root@leadchina 07:22:59->alter table student drop column Sgrade;

 

 4、索引的创建

   索引是优化mysql的重要手段之一,查询数据库,按主键查询最快,每个表只能有一个主键列,但是可有多可普通索引列,索引列可以加快查询速度,但是也不是越多越好,索引也是会暂用mysql资源。

1)、再创建表的时候创建索引

create table test.student1(
    id int(4) not null AUTO_INCREMENT,
    name char(20) not null,
    age tinyint(2) not null,
    dept varchar(16) default null,
    primary key(id),
    key index_name(name)
);

 2)建表后再添加主键

  当我们在建表后发现没有主键,可以同过alter 进行添加主键

alter table student change id id int primary key auto_increment;

 3)、建表后添加普通的索引

语法: alter table 表名 add index index_列名(列名)

alter table test.student add index index_name(name);
方法二:
create index index_name on test.student(name);

  索引的删除

alter table test.studnet drop index index_name;

      对列的前N个字符进行创建索引

create index index_dept on test.student(dept(8));

 4)、创建联合索引, 方便多列一起查询。

语法:

    create index  index_列1名_列2名_..._列n on 表名(列1名。列2名···n)

create index index_name_dept on test.student(name.dept);

 删除:

    drop index  index_列1名_列2名_..._列n on 表名

 

drop index index_name_dept on test.student;

 联合索引前N个字符

create index index_name_dept on test.student(name(8),dept(7));

注意 :联合索引index(a,b,c)仅可以a,ab,abc三个查询条件可以走联合索引,前缀生效特性。

非主键的唯一索引的创建

create unique index index_name on test.student(name);

索引创建的规则:

1、要在表的列上创建索引;

2、索引会加快查询速度,但是会影响更新的速度;

3、索引不是越多越好,要在频繁使用查询的where后的条件上创建索引;

4、小表或者唯一值极少的列上不建索引,要在大表以及不同内容多的列上创建索引,

5、写多读少的数据库不建索引;

posted @   闲着没事学学习  阅读(209)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示