Skip to content

开启数据库服务

shell
# 先将路径放进环境变量中
export PATH=/usr/local/mysql/support-files:$PATH
# 完成以上操作后就可以直接用命令了⬇️⬇️
sudo mysql.server start

关闭数据库服务

shell
sudo mysql.server stop

登陆数据库

shell
cd /usr/local/MySQL/bin
mysql -u root -p12345678

显示数据库

sql
show databases;

创建数据库

sql
create databases 数据库名;

删除数据库

sql
drop database 表名;

打开数据库

sql
use 数据库名;

显示当前数据库内的表

sql
show tables;

查看表结构

sql
desc 表名;

查询表的索引

sql
show index form 表名;

image-20220127160432110

img

新建(唯一)索引

sql
create (unique) index 索引名 on 表名(列名);

删除索引

sql
--当索引被引用时不能删除,必须先删除所有引用了索引的约束--
alter table 表名 drop index 索引名 (on 表名);

创建表

sql
--可加可不加--
drop table 表名 if exist;
create table 表名(
    integer(整型) not null primary key auto_increment,
    varchar(字符串类型,必须要跟最大字符串),
    text(大文本),
    float(单精度,即7-8位有效数字),
    double(双精度,即15-16位有效数字),
    date(只有年月日),
    time(只有时分秒),
    datetime(既有年月日,又有时分秒),
);
eg1.主键+外键
CREATE table course(
    cno char(7) not null PRIMARY KEY,
    cname VARCHAR(7) not null,
    ccredit int(2) not null,
    cpno char(7) REFERENCES course(con)
);
eg2.复合主键+复合外键(多对多情况)
CREATE table sc(
    sno char(7),
    cno char(7),
    score DECIMAL(4,1),
    point DECIMAL(2,1)
    PRIMARY key(sno,cno),
    FOREIGN key sno REFERENCES students(sno),
    FOREIGN key cno REFERENCES course(cno)
);

查看新建表的命令/查看表约束和索引

sql
 show create table 表名;

查询表

sql
select 列名 form 表名 (join 从表 on 条件) where 条件 having 条件 group by 列名 order by 列名 (asc) limit 数量;

插入表

sql
insert into 表名(列名1,列名2,...) values(value1,value2,...);

修改表

sql
1、添加列
alter table 表名 add 列名 类型;
2、修改列
alter table 表名 change 列名 (新列名) 类型;
3、删除列
alter table 表名 drop 列名;
4、添加主键约束
(4.1)、单主键
alter table 表名 add constraint primary key(列名);
(4.2)、复合主键(注意顺序)
alter table 表名 add constraint primary key(列名1,列名2,...);
5、添加外键约束
(5.1)、单外键(单外键可以和复合主键中的单键相连,但是这样会不稳定)
alter table 表名 add foreign key(列名) references 外表(主键);
(5.2)、复合外键(注意顺序)
alter table 表名 add foreign key(列名1,列名2,...) references 外表(主键1,主键2,...);
6、删除主键约束(主键在链接了外键的情况下不能删除)
alter table 表名 drop primary key;
7、删除外键约束
alter table 表名 drop constraint 约束名 (on 表名);

复合主/外键内部是有顺序的,请注意!顺序由创建时决定image-20220127172122931

image-20220127172640923

单键可以和复合主键的单键相连,但是不建议这么做image-20220127171218341

删除表

sql
drop table 表名;

清空表

sql
delete from 表名;