MYSQL CLI 客户端常见命令:
CLI 命令:
* net start MYSQL 启动mysql
* net stop mysql 停止mysql
* sc delete mysql 卸载mysql
登录到mysql
* mysql -h 主机名 -u 用户名 -p
* 当登录本机时,-h 可以忽略
* -p 表示要以密码登录,如果密码为空,就可以忽略此项
* 登录成功后会输出 welcome to MYSQL Monitor
如图
创建数据库:
* create database 数据库名 [其他选项]
* 例如创建一个demo的数据库
* create database demo character set gbk; 设置为gbk编码,为了使控制台能够显示中文
注意: MySQL语句以分号(;)作为语句的结束, 若在语句结尾不添加分号时, 命令提示符会以 -> 提示你继续输入(有个别特例, 但加分号是一定不会错的);
选择要操作的数据库:
两种方式:
* 1. 登录时选择数据库:
* mysql -d 数据库名 -h 主机名 -u 用户名 -p
* 如 mysql -D(必须为大写) demo_database -u root -p
* 2. user 数据库名
* mysql->use demo_database;
创建数据表:
* create table 表名称(列声明)
* 以创建 students 表为例, 表中将存放 学号(id)、姓名(name)、性别(sex)、年龄(age)、
* 联系电话(tel) 这些内容:
* create table students
(
id int unsigned not null auto_increment primary key,
name char(8) not null,
sex char(4) not null,
age tinyint unsigned not null,
tel char(13) null default "-"
);
对于一些较长较复杂的sql语句,可以写在sql文件中,然后用命令加载
* 如:
* mysql -D demo_database -u root -p <demo.sql
* 查看数据表:
* show tables;
* describe tables; 显示创建的表的详细信息
* 操作数据表:
* 插入数据:
* insert [into] 表名 [(列名1, 列名2, 列名3, ...)] values (值1, 值2, 值3, ...);
* 其中 []中的内容是可选的
* insert into students values(NULL,"daiyutage","man",22);
* 按回车键确认后若提示 Query Ok, 1 row affected (0.05 sec) 表示数据插入成功。
* 若插入失败请检查是否已选择需要操作的数据库。
有时我们只需要插入部分数据, 或者不按照列的顺序进行插入, 可以使用这样的形式进行插入:
insert into students (name, sex, age) values("孙丽华", "女", 21);
*
* 查询数据:
* select [列名称] from 表名称[查询条件]
* 查询students表的name,age
* select name,age from students;
也可以使用通配符*查询所有列
* 更新表中的数据:
* update 表名称 set 列名称=新值 where 更新条件
* 将所有人的年龄增加1: update students set age=age+1;
* 删除表中的数据:
* delete from 表名称 where 删除tiaojian
* 删除id为2的人:
* delete from students where id=2;
删除表中的所有数据: delete from students;
* 创建后表的修改:
* alter table:
* alter table 表名 add 列名 列数据类型 [after 插入位置]
* 增加address列
* alter table students address char(39);
*
* 修改列:
* alter table 表名 change 列名 新名称 新数据类型
* 将表 tel 列改名为 telphone: alter table students change tel telphone char(13) default "-";
*
删除列:
alter table 表名 drop 列名
* 重命名表:
* alter table 表名 rename 新表名
* drop 表名
* 如 drop students;
*
* 删除整个数据库
* drop database 数据库名;