一.MySQL基本语句
1.连接数据库语句
如果用别的机器去访问mysql,需要加上服务器地址。也就是如下的代码
mysql -hlocalhost -uroot -pok
这个是不用写服务器地址的代码
mysql -uroot -pok
前两种-p
后面跟的是密码,这里可以直接写出来
或者按照第三种写,回车之后再输入密码,安全性更高
mysql -uroot -p
这三种写法都可以
2.结构化查询语句SQL
3.库级操作
a.)创建数据库
create database [if not exists] 库名;
如果不写if not exists,如果建的库存在,那么执行语句的时候就会报错
b.)删除数据库
drop [if exists] database 库名;
如果不写if exists,如果建的库不存在,那么执行语句的时候就会报错
c.)查看数据库
show databases;
举例
d.)切换数据库
use 库名;
举例
注:[ ]括起来代表可写可不写
4.表级操作
a.)创建表
反引号用于区别MySQL保留字与普通字符而引入的,
最后一行语句不用写逗号
create table if not exists `表名`(
列名 列类型(长度)属性 索引 注释,
列名 列类型(长度)属性 索引 注,
......
列名 列类型(长度)属性 索引 注释
)engine 引擎名 charset="" 注释;
对于建表语句的解释:
一.列类型
规定数据库中该列存放的数据类型
分为
- 数值类型
- 字符串类型
- 日期和时间型数值类型
- NULL值
1.列类型分类
i . 数值类型
ii . 字符串类型
iii .日期和时间型数值类型
iiii .NULL值
理解为“没有值”或“未知值”
不要用NULL进行算术运算,结果仍为NULL
二.数据字段属性
UNSIGNED
无符号的
声明该数据列不允许负数
ZEROFILL
0填充的
不足位数的用0来填充,如 int(3),5则为 005
AUTO_INCREMENT
自动增长的,每添加一条数据,自动在上一个记录数上加1
通常用于设置主键,且为整数类型
可定义起始值和步长
NULL 和 NOT NULL
默认为NULL,即没有插入该列的数值
如果设置为NOT NULL,则该列必须有值
DEFAULT
默认的
用于设置默认值
例如,性别字段,默认为“男”,否则为“女”;若无指定该列的值,则默认为“男”的值
三.数据字段注释
四.表列类型设置
举例
b.)删表
drop table 表名;
举例
c.)查看建表语句
show create table 表名;
举例
d.)查看表结构
desc 表名;
举例
e.)查看表内容
select * from 表名;
f.)修改表
[1]修改表名
[2]添加字段
alter table 表名 add column 字段名 列类型 属性;
一般column不省略
[3]修改字段
修改名字必须用change
modify修改属性
[4]删除字段
5.行级操作(数据操作)
a.)插入语句
insert into 表名[(字段列表)] values(对应的值)....(对应的值);
字段或值之间用英文逗号隔开
“字段1, 字段2…”该部分可省略,但添加的值务必与表结构数据列顺序相对应,且数量一致
可同时插入多条数据,values 后用英文逗号隔开
举例
b.)修改语句
update 表名 set 字段名=值[,...,字段名=值] where 条件语句;
WHERE条件子句:有条件地从表中筛选数据
WHERE中的运算符
举例
c.)删除语句
【1】DELETE命令
delete from 表名 where 条件;
举例
【2】TRUNCATE命令
用于完全清空表数据,但表结构、索引、约束等不变
注:delete和drop和truncate区别
drop 删除表所有
truncate 清空
delete 有条件的删除,也可以删除整张表,但自增的不会删除