本文均为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;