mysql基础使用浅谈(1)
一、安装启动数据库 1.安装数据库: sudo apt-get install mysql-server sudo apt-get install mysql-client 2.开启数据库: sudo service mysql start 3.登录数据库: mysql -u root (这是在数据库没有密码的情况下登录) mysql -u root -p (这是在数据库有
一、安装启动数据库
1.安装数据库:
sudo apt-get install mysql-serversudo apt-get install mysql-client
2.开启数据库:
sudo service mysql start
mysql -u root (这是在数据库没有密码的情况下登录)
mysql -u root -p (这是在数据库有密码的情况下登录)
二、创建数据库(注意在输入mysql命令时特别注意分号—“;”的使用!!!)
1.创建数据库:
CREATE DATABASE hello; (表示创建名为hello的数据库)
(这里要注意的是mysql中对于命令并不区分大小写,所以CREATE DATABASE也可以写成create database;create DATABASE;CREATE daTabase等)
若输入以上指令后出现:Query OK,1 row affected则说明创建成功。
可以通过命令 :show databases; 进行查看
2.连接数据库
eg: use hello
若出现:Database changed 则说明数据库连接成功
查看当前数据库中的表格命令:show tables;
若提示:Empty set(0.00 sec)
则说明当前数据库为空。
3.新建数据表
创建的格式为:
create table 表格的名称
(
列名1 数据类型(数据长度),
列名2 数据类型(数据长度),
列名3 数据类型(数据长度)
);
eg:
create table zhuce
(
id int(10),
name char(20),
phone int(10)
);
当提示为:Query OK,0 rows affected(0.10 sec)
则说明创建成功!
可以通过show tables; 命令对次数据库中的表格进行查看。
4.数据类型
数据库中的数据类型与普通的编程语言的数据类型大同小异,很多的用法形式都是一样的,以下列出不同的:
enum 用途:单选,比较性别 eg:enum('a','b','c')
set 用途:多选 eg:set('1','2','3')
date 用途:日期 eg:YYYY-MM-DD 3个字节
time 用途:时间点或持续时间 eg:HH:MM:SS 3个字节
year 用途:年份值 eg:YYYY 1个字节
varchar 用途:变长字符串 0~255字节
text 用途:长文本数据 0~65535字节
char和varchar区别:
char:char(10)表示的就是存储的字符占10个字节(无论有没有存 满10个字符)。
varchar:varchar(10)表示的是最多可以存10个字节,但是当你存入的字符小于10时,则按实际长度存储。
5.插入数据
通过以下命令对表格进行查看:select * from nihao;
出现:Empty set
则表示表格中仍为空~~~
下面需要在表格中插入数据,插入格式为:
insert into 表格名称(列名1,列名2,列名3) values(值1,值2,值3);
eg:
insert into nihao (id,name,phone) values(01,'Tommy',101010);
当显示为Query OK,则说明插入成功啦!
这里要注意对于varchar、char、date、time、enum、text、set等类型时需要单引号修饰,而int、float、double等则不需要单引号。
插入后再使用select * from nihao查看nihao表格。
6.退出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';