数据库的认识
sql是用户和数据库间交流的中介。
sql命令不区分大小写。
“mysql”数据库是含有与MySQL运行相关的基本信息等管理数据的数据库。
“information_schema数据库又称为信息架构,管理从表开始的数据库的组成信息,以及用户管理信息的检索专用的数据库。通过这两个数据库可以掌握现在数据库的状态。不可以在这两个数据库中保存用户经常使用的数据。
test数据库是测试数据库,数据库本身是空的,可以删除。
show databases查看服务器内的数据库。
删除数据库
drop database 数据库名
!!对于表名和数据库名,window不区分大小写,linux区分大小写。
创建新用户并赋予其对数据库的操作权限
grant all privileges on 数据库名.* to 用户名 @localhost identified by 密码
权限是衡量用户能对数据库进行什么样的操作,有
all privileges 所有的权限 create 创建 select 检索 update 更新 delete 删除 |
创建用户
create user 用户名 identified by ‘密码’
用户登录
mysql -u 用户名 -p密码 (-p和密码之间没有空格)
选择数据库
use 数据库名
查看现在使用的数据库
select database();
创建表时指定字符集
create table 表名( ...)
charset=uft8;
显示当前数据库下所有表
show tables;
显示表结构
desc/describe 表名
删除表
drop table表名
自增序列
auto_increment修饰的字段:
1.数据类型必须是自增序列
2.使用primary key设置其唯一性。
初始化auto_increment的初始值
alter table 表名 auto_increment=初始值
sql语句的种类
1.数据库操作语句
2.数据库定义语句
3.数据库控制语句
在终端下使用SQL规则:
1.SQL语句必须以 ;结尾 2.保留关键字不区分大小写 3. 在SQL语句的中间可以自由的加空格或换行符(在一个关键字的中间加空格不对) 4. 单行注释:--,多行注释:/* ... */ |
向数据库插入数据时,如果值为字符串、日期的情况下,必须用‘’将值括起来。
当更新或删除一个表中所有的数据时,将where=null即可,但清空数据表还有一个更好的命令
truncate table 表名 |
判断字段值是否为空条件不能为=null,应该是is null.
逻辑运算符的优先级:
NOT > AND >OR |
count()函数统计非空的记录数
表的维护和改造
更改前注意备份!!
1.修改列的定义:alter table ... modify
2.追加列:alter table ... add
3.修改列的名称和定义:alter table ... change
4.删除列:alter table ... drop
更改列的数据类型
alter table 表名 modify 列名 数据类型
追加新列
|
改变列的位置
alter table 表名 modify 要移动的列名 数据类型 after 前一个列名
修改列名和数据类型
alter table 表名 change 旧列名 新列名 新数据类型
删除列
alter table 表名 drop 列名
复制表和删除表
1. 表的列结构和数据的复制
|
2. 复制表的列结构
|
3. 向已存在的表中复制数据
|
删除表
drop table 表名
删除表前先判断表是否存在
|