时间:2021-07-01 10:21:17 帮助过:36人阅读
1.安装数据库:
sudo apt-get install mysql-serversudo service mysql start
3.登录数据库:mysql -u root -p (这是在数据库有密码的情况下登录)
1.创建数据库:
CREATE DATABASE hello; (表示创建名为hello的数据库)
(这里要注意的是mysql中对于命令并不区分大小写,所以CREATE DATABASE也可以写成create database;create DATABASE;CREATE daTabase等)
若输入以上指令后出现:Query OK,1 row affected6.退出mysql连接
输入exit 或者是quit 或者是 \q 即可退出
三、mysql 中的约束类
约束类型及其关键字如下:
1.主键约束
主键约束用于约束表中一行,作为这一行的标识符,在一张表中通过主键就可以准确定位到一行,行中的主键不能有重复且不能为空!!!
eg:create table example1
( id int(10) primary key
name char(20),
constraint dpt_pk primary key(dpt_name)
);
表示的就是主键约束,constraint dpt_pk primary key(dpt_name)这句代码是定义主键,dpt_pk是自定义的主键名。
还有复合主键定义eg: constrint proj_pk primary key(proj_num,proj_name)
2.默认值约束
默认值约束规定当有默认值约束的列,插入数据为空时,这个位置将会被默认值的值填充
设置如下:
代码分析:代码中的default'10' 表示的就是当dpt_num没有输入时,则默认输出为10
eg:insert into example(dpt_name,dpt_num) value('nihao',11);
insert into example(dpt_name) values('wohenhao');
代码分析:第二行代码中没有输入dpt_num
输入完以上代码后输入select * from example; 对表格进行查看发现:
3.唯一约束
唯一约束就是规定表中指定的一列的值必须不能有重复值,即这一列每个值都是唯一的。
表格创建形式如下:
代码分析:代码中的unique(stu_class)就是对stu_class的唯一约束。
输入数据如下:
当输入第二行代码时,会发现提示错误,错误的原因是stu_class的在表格建立时设置为unique,即唯一值!
4.外键约束
外键既能确保数据完整性,也表现表之间的关系,一个表可以有多个外键,每个外键必须参考另一个表的主键,被外键约束的列,取值必须在它的参考列中有对应的值。
5.非空约束
被非空约束的列,在进入时必须为非空的。
表格创建如下:
代码分析:这里设定的是id不能为空
数据插入:
代码分析:可以看到代码中没有输入id,输入完成后,有 1 warning 一个警告。
查看表格:
id没有输入,但是其在表格中显示值为0,即当id被not null约束时,当输入为空时,被记为0.
四、修改和删除
1.删除数据库
命令如下示例:drop database 数据库名;
eg:drop database test;
2.重命名表
格式:rename table 原名 to 新名;
或者是:alter table 原名 rename 新名;
或者是: alter table 原名 rename to 新名;
3.删除表
格式:drop table 表名称;
4.修改表结构
①增加一列:
格式:alter table 表名字 add column 列名称 数据类型 约束;
或:alter table 表名字 add 列名字 数据类型 约束;
②删除一列:
格式:alter table 表名字 drop column 列名字;
或: alter table 表名字 drop 列名字;
③重命名一列:
格式:alter table 表名称 change 原列名 新列名 数据类型 约束;
(注意:这条重命名语句后面的“数据类型”不能省略,否则重命名失败)
④改变数据类型
格式:alter table 表名字 modify 列名字 新数据类型;
(需要谨慎考虑,可能导致数据丢失)
5.对表的内容修改
①修改表中的某个值
格式:update 表名字 set 列1=值1,列2=值2 where 条件;
(注意:一定要有where条件,否则后果不堪设想!)
②删除一行记录
格式:delete from 表名字 where 条件;
eg:delete form test where name='nihao';