一篇特别基础的速成,
下载安装: 简略
- 官方下载页: http://dev.mysql.com/downloads 下载community verison , 社区版,免费
- 下载安装, 一路next, 根据提示输入root 密码等等.
配置以及远程登陆:
- 此时,你不能远程登陆到这个数据库,只能在本地登陆, 下面我们配置远程登陆
- 使用本地用户登陆数据库,例如 mysql -u root -p
- 创建用户:
CREATE USER zhangsan@'%' IDENTIFIED BY '123456'
- %表示任意地址, 也可以把%换成你希望的主机ip 例如192.168.1.100 这样就限制了zhangsan用户只能在192.168.1.100这个地址上登陆了. 此时这个用户的权限较低, 增加权限, 见step5
- sudo vim /etc/mysql/my.cnf, 修改 为bind-address = 0.0.0.0 . 默认情况下 mysql只监听本机localhost
- 给用户授权:
GRANT ALL ON demoA.* TO 'zhangsan'@'%';
- // 给予zhangsan用户, 表 demoA的所有权限. 如果想给用户所有表的所有权限, 把demoA.* 替换为*.*
- 剩下的就是建数据库, 建表语句了.
- 切换 到远程, 用zhangsan帐户登陆. 成功.
建库,建表:
- 建库:
CREATE DATABASE demoA;
use demoA;
- 建表:
CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT,PRIMARY KEY (`id`))
- //A table must have at least 1 column, 至少需要1列,
最简单的例子:
CREATE TABLE test (id tinyint(1));
- 错误的例子:
CREATE TABLE `scores` ();
数据库, 表的修改:
- 修改数据库:
ALTER SCHEMA `demoA` DEFAULT CHARACTER SET utf8 ;
- 修改表:
重命名:
ALTER TABLE `demoA`.`student` RENAME TO `demoA`.`students` ;
- 修改表的默认字符:
ALERT TABLE `students` CHARACTER SET = utf8;
</pre></li><li>添加列:同时添加2列:<pre name="code" class="sql">ALTER TABLE `demoA`.`student` ADD COLUMN `name` VARCHAR(45) NOT NULL COMMENT '' AFTER `id`,ADD COLUMN `mobile` VARCHAR(45) NOT NULL COMMENT '' AFTER `name`;
- 添加1列:
ALTER TABLE `demoA`.`student` ADD COLUMN `studentID` VARCHAR(45) NOT NULL COMMENT '' AFTER `mobile`;
- 修改列, 有三个方法: CHANGE COLUMN, MODIFY, ALTER COLUMN(其中ALTER COLUMN是设置或删除 默认值,这里不举例了)
ALTER TABLE `students` CHANGE COLUMN `studentID` `studentID` VARCHAR(16);
ALTER TABLE `students` MODIFY COLUMN `studentID` VARCHAR(15);
- 删除列 :
ATER TABLE `students` DROP 列名;
以上就是修改表的结构了,表的结构确定之后, 我们就可以操作数据了,我理解应用最多的就是对数据的操作了:
数据插入、修改、删除:
- 插入1条数据 :
</pre><pre name="code" class="sql">INSERT INTO students(id, name, mobile,student_id) values(004,'张三','13800138000',2016005);
- 也可以省略 列名,直接插入数据,可以按照顺序.
INSERT INTO students values(004,'张三','13800138001',2016005);
- 插入多条数据:
INSERT INTO students values(006,'张三三','13800138002',2016007),(007,'张三散散散','13800138003',2016008);
- 修改1条数据:
UPDATE students set gender = 1 where name = '张三';
- 删除数据:
DELETE FROM students WHERE name = '张三';
- 清空数据:
TRUNCATE TABLE 表名;
DELETE FROM 表名;
- 效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。delete的效果有点像将mysql表中所有记录一条一条删除到删完,
非常有用的几个命令:
- desc 表名, 查看所有列
- show create table 表名, 查看建表语句
- show database;
- show tables;
结尾:
每天早晨起床,默写 CRATE DATABASE, CTEATE TABLE, ALTER TABLE , INSERT INTO, UPDATE , DELETE FROM 基本语法三遍,