本文均为Linux系统的数据库操作
—-mysql服务器
sudo service mysql start ——————- 启动mysql服务器
mysqladmin -u root shutdown —————-关闭mysql服务器
—-查看服务器是否开启
ps -ef |grep mysql
如果MySql已经启动,以上命令将输出mysql进程列表
数据库的操作:
——连接数据库
mysql -u root -p
mysql -u root -p密码
——退出数据库
quit / exit / cirl+D
——sql语句需要有分号;结尾
–如果语句没写完,不小心按到enter键,继续输入即可
select version();——显示数据库版本
select now();——显示现在时间
——创建数据库
create database 数据库名; –默认charset=拉丁
create database 数据库名 charset=utf8; –有中文一定用此方法创建
——查看所有数据库
show databases;
——-删除数据库
drop database 数据库名;
drop database `数据库名;——如果数据库名中含有特殊符号,在数据库名前加`
——选择数据库
use 数据库名;
——查看当前使用的数据库
select database();
数据表的操作
show table;———显示数据库中的所有表
——-创建数据表
–auto-increment 表示自动增长
–not null 表示不能为空
–primary key 表示主键
–defualt 默认值
create table 数据表名字(字段 类型 约束| 字段 类型 约束|)
create table xxxxx(id int, name varchar(30));
create table xxxxx(id int primary key not null, name varchar(30));
–换行格式如下
create table xxxxx(
id int primary key not null,
name varchar(30)
);
——-desc 数据表的名字
——显示表的状态,包括列名(column name),各个列的类型(Type),各个列的值类型,主外键(Key),默认值,其他
实例:
—创建students表(id,name,age,hight,gender,cls_id )
create table student(
id int unsigned not null auto_increment primary key,
name varchar(30),
age tinyint unsighed default 0,
high decimal(5,2),
gender enum(“男”,”女”) defuault “保密”,
cls_id int unsighed
);
——插入某一个数据
insert into students values(0,”老王”,18, 188.88, “男”,0);
—–创建classes表(id,“班级”)
create table classes(
id int unsigned not null auto_increment primary key,
name varchar(30)
);
——–查看表创建语句
——show create table 表名;
—-修改表—-添加字段
—alter table 表名 add 列名 类型;
alter table students add birthday;
—-修改表—修改字段 (不要重命名,修改类型)
—alter table 表名 modify 列名 类型及约束;
alter table classes students modify birthday data;(原为datatime)
—-修改表—-修改字段 (重命名)
—-alter table 表名 change 列名 类型及约束;
—alter table students change birthday birth data;
—-修改表—删除字段
—-alter table 表名 drop 列名;
alter table students drop high;
—-删除表
—-drop table 表名;
drop table classes;
——–查看表的内容
——-select * from 表名;
select * from classes;
增删改查(重点)
—-全列插入
—-insert into 表名 values(….)
—-主键字段可以用0 null default 来占位
—-向classes表中插入 一个班级
insert into classes values(0,”菜鸟班”)
+————+————-+———+———–+————-+————-+
| id | name | age | high | gender | cls_id |
+————+————-+———+———–+————-+————-+
| 1 | 老王 | 18 | 188.80 | 男 | 0 |
+————+————+———-+———–+————-+————-+
—-向students插入一个学生
insert into students values(0, “小李飞刀”, 20,165, “女”,123)
—在枚举中,1对应第一个元素,2对应第二个元素,3对应第三个,以此类推。
—-部分插入
insert into students (name,gender) values (“小乔”,2);
—–多行插入
insert into students (name,gender) values (“小乔”,2),(“大乔”,2),(“貂蝉”,2),(“吕布”,1);
—-修改
update 表名 set 要改的列内容
update students set gender=1; —- ——–gender全部被改
update students set gender=1 where id=1;———–只改id=1中的gender
update students set age=22,gender=2 where id=1;—–id=1的age, gender被改
—-删除
—-物理删除
delete from 表名;——整个表名都被删除
delete from students where name=”小李飞刀”
—逻辑删除
—-用一个字段来表示,这条信息是否已经不再使用了
—–给students表添加一个is_delete字段 bit 类型
—– alter table students add is_delete bit defualt 0;
—–is_delect=0没删, is_delect=1删了
update students set is_delete=1 where id =6; –删了id=6
—查询基本使用
—查询所有列
—-select * from 表名;
select * from students;
—-定条件查询
select * from students where name =”小李飞刀” ;—-查询名为小李飞刀的所有信息
select * from students where
—-查询指定列
select name,gender from students;
—–可以使用as 为列或表指定别名
select 字段 as 别名 ,字段 as 别名 from 表名;
select name as 姓名,gender as 性别 from students;
—–字段顺序查询
select id as 序号,gender as 性别,name as 姓名 from students;
–去重
–distinct 字段
select distinct gender from students;