查看一下所有的库 , 怎么办 ?
Mysql>Show databases;
选库语句 : Use 库名
创建一个数据库 : create database 数据库名 [charset 字符集 ]
删除一个数据库 : drop database 数据库名 ;
把数据库改改名 ?
Mysql 中 , 表 / 列可以改名 , database 不能改名 .
phpMyAdmin 似乎有这功能 ? 他是建新库 , 把所有表复制到新库 , 再删旧库完成的 .
当选了库之后, 我们面对的是表
查看库下面的所有表 : show tables;
先给大家提供一个 简单的建表语句
create table stu (
snum int,
sname varchar(10)
)engine myisam charset utf8;
删除表 : drop table stu;
修改表名 :
清空表数据 : truncate 表名
Truncate 和 delete 是有区别的 ,
在于 truncate 相当于删表再重建一张同样结构的表 , 操作后得到一张全新表 .
而 delete 是从删除所有的层面来操作的 .
Trucate 相当于把旧的学籍表扔了重画一张 ,
Delete 相当于用橡皮把学籍表的数据库擦掉 .
如果决定全清空的下 ,truncate 速度更快一些 .
查看表结构
答 : desc tableName; // 查看表结构
12: 解决字符集问题 :
默认建表一般用 utf8, 而我们在 windows 下窗口是 GBK 的 ,
因此 , 需要声明字符集 .
Set names gbk;
发现的 1 小问题
语句打错以后应该退出本语句 , 再继续打新语句 . 也可以打 \c, 退出本语句 .
如何破解数据库的密码 :
1: 通过任务管理器或者服务管理 , 关掉 mysqld( 服务进程 )
2: 通过命令行 + 特殊参数开启 mysqld
Mysqld --skip-grant-tables
3: 此时 ,mysqld 服务进程已经打开 , 并且 , 不需要权限检查 .
4:mysql -uroot 无密码登陆服务器 .
5: 修改权限表
A: use mysql;
B:update user set Password = password('11111') where User = 'root';
C:flush privileges;
6:
通过任务管理器
,
或服务管理
,
关掉
mysqld
服务进程
.
7: 再次通过服务管理 , 打开 mysql 服务 .
建表语法
所谓建表就是一个声明列的过程 .
create table 表名 (
列名 1 列类型 1 列 1 参数 ,
列名 2 列类型 2 列 2 参数 ,
....
...
列名 n 列类型 n 列 n 参数
)engine myisam/innodb/bdb charset utf8/gbk/latin1...
修改表的语法
一张表 , 创建完毕 , 有了 N 列 .
之后还有可能要增加或删除或修改列
Alter table 表名 add 列名称 列类型 列参数 ; [ 加的列在表的最后 ]
例 : alter table m1 add birth date not null default '0000-00-00';
Alter table 表名 add 列名称 列类型 列参数 after 某列 [ 把新列加在某列后 ]
例 : alter table m1 add gender char(1) not null default '' after username;
Alter table 表名 add 列名称 列类型 列参数 first [ 把新列加在最前面 ]
例 : alter table m1 add pid int not null default 0 first;
删除列 :
Alter table 表名 drop 列名
修改列类型 :
Alter table 表名 modify 列名 新类型 新参数
例 : alter table m1 modify gender char(4) not null default '';
修改列名及列类型
Alter table 表名 change 旧列名 新列名 新类型 新参数
例 :alter table m1 change id uid int unsigned;
?? 如果列类型改变了 , 导致数据存不下怎么办 ?
比如 ,int 改成 smallint 列 . 如果不匹配 , 数据将会丢失 , 或者在 mysql 的 strict_mode 下 , 修改不了 .
为什么建表时
,
加
not null default '' / default 0
答 : 不想让表中出现 null 值 .
为什么不想要的 null 的值
答 :
不好比较 ,null 是一种类型 , 比较时 , 只能用专门的 is null 和 is not null 来比较 .
碰到运算符 , 一律返回 null
效率不高 , 影响提高索引效果 .
因此 , 我们往往 , 在建表时 not null default ''/0
常用数据库管理语句:
create table goods ( goods_id mediumint(8) unsigned primary key auto_increment, goods_name varchar(120) not null default '', cat_id smallint(5) unsigned not null default '0', brand_id smallint(5) unsigned not null default '0', goods_sn char(15) not null default '', goods_number smallint(5) unsigned not null default '0', shop_price decimal(10,2) unsigned not null default '0.00', market_price decimal(10,2) unsigned not null default '0.00', click_count int(10) unsigned not null default '0' ) engine=myisam default charset=utf8;