MySql基础教程
SQL语句的分类
Sql语句是专门用来操作数据库的一种语言,我们之前在学习WebSql的时候,简单的了解过Sql语句,但是这些Sql语句,它还有一个分类
-
DDL类型SQL语句
数据库定义语言,Create ,Drop,Alter,Change,Modify等关键字
-
DML类型SQL语句
数据库操作语言,Insert ,Delete ,Select,Update等关键字
-
DCL类型SQL语句
DDL类型SQL语句学习
-
连接数据库【命令】
$ mysql -h 127.0.0.1 -u root -p123456;
上面的命令是连接一个mysql的数据库
-h代表的是hostname ,如果省略掉,则默认就是连接到自己的电脑
-u代表 username
-p代表password ,如果省略掉,则默认是空密码(安装的时候没有设置密码)
-
显示所有的数据库
show databases;
注意:一条sql语名写完了以后,一定要加上分号
;
-
切换数据库
use 数据库名;
-
创建数据库
create database 数据库名;
-
删除数据库
drop database 数据库名;
-
显示所有数据表
show tables;
-
创建数据表
create table 数据库表名(列名 数据类型)
mysql> create table if not exists stu_info( -> s_id varchar(50), -> s_name varchar(50), -> s_age int, -> s_sex varchar(10) -> )engine=innodb default charset=utf8;
mysql> create table if not exists score_info( -> s_id varchar(50) not null, -> score float not null default 0 -> )engine=innodb default charset=utf8;
not null代表此列不能为空
default代表设置这一列的默认值,如果在插入的过程当中,没有输入值,则会使用默认值去替代
-
删除数据表
drop table 数据库表名
-
显示数据表中列的信息
show columns from 数据表名
-
显示数据库中列的信息2
desc 数据表名
-
新增数据表的列
```mysql
alter table 表名 add column 列名 数据类型
```
-
删除数据表中的列
alter table 表名 drop column 列名
-
修改数据表中列的属性
alter table 表名 modify 列名 列属性; alter table stu_info modify s_sex varchar(10) not null default 'boy';
-
修改数据表中列的名称
alter table 表名 change column 原列名 新列名 列属性
-
修改数据库表名
alter table 原表名 rename 新表名
-
表中的唯一约束**(可为NULL)**
什么是唯一约束?
在向数据表中插入数据的时候,某一列的数据如果设置了唯一约束,则在插入的时候,这一列不允许出现重复的数据
唯一约束仅仅只是内容唯一,可以插入空值
alter table student_info modify s_name varchar(50) unique;
unique关键字就是用来设置唯一项的
-
数据表的主键
什么是主键?
主键是比唯一约束更严格的约束项,它必须唯一,并且不能为空,表现形式为
PRI
一个数据表最好至少有一个主键,这个方便我们数据库的操作
优点:可以帮我们快速的去找到数据表的一条数据,找到记录以后,我们可以对这条记录相关操作,这样可以提高我们的开发效率
-
第一种情况设置主键
手动的设置不为空的唯一项
mysql> create table if not exists stu_info( -> s_id varchar(50) not null unique, -> s_name varchar(50) not null -> )engine=innodb default charset=utf8;
-
第二种情况创建
直接使用
primary key
关键字创建mysql> create table if not exists stu_info( -> s_id varchar(50) primary key, -> s_name varchar(50) not null -> )engine=innodb default charset=utf8;
-
第三种情况
在添加完列以后,再单独设置
mysql> create table if not exists stu_info( -> s_id varchar(50), -> s_name varchar(50) not null, -> primary key(s_id) -> )engine=innodb default charset=utf8;
-
第四种情况,在已存在的表里面去添加主键
alter table stu_info modify s_id varchar(50) not null unique;
alter table 表名 add primary key(列名);
-
-
删除主键
alter table 表名 drop primary key;
-
主键自增长
mysql> create table if not exists score_info( -> id int primary key auto_increment, -> s_id varchar(50) not null, -> score float not null, -> score_name varchar(50) not null -> )engine=innodb default charset=utf8;