数据库的认识 sql 是用户和数据库间交流的中介。 sql 命令不区分大小写。 “ mysql ”数据库是含有与 MySQL 运行相关的基本信息等管理数据的数据库。 “information_schema数据库又称为信息架构,管理从表开始的数据库的组成信息,以及用户管理信息的检索专
数据库的认识
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 表名 add 新列名 数据类型 在表的开头追加新列 alter table 表名 add 新列名 数据类型 first 在任意位置追加新列 alter table 表名 add 新列名 数据类型 after 前一个列名 登入後複製 |
改变列的位置
alter table 表名 modify 要移动的列名 数据类型 after 前一个列名
alter table 表名 change 旧列名 新列名 新数据类型
alter table 表名 drop 列名
1. 表的列结构和数据的复制
create table 新表名 select * from 旧表名 登入後複製 |
2. 复制表的列结构
create table 新表名 like 旧表名 登入後複製 |
3. 向已存在的表中复制数据
insert into 表名 select * from 旧表名 登入後複製 |
删除表
drop table 表名
drop table if exists 表名 登入後複製 |