Day 013 MySQL

今天的主要内容有:数据库简介,Navicat图形界面操作,命令行脚本。

数据库简介

  1. 数据库是现代化的数据记录方式,它具有持久化存储,读写速度极高,保证数据的有效性,对程序的支持性好,易扩展等特点。
  2. 一行数据行是一条数据记录,一列数据列,代表一个字段,数据表是数据行的集合,数据库是数据表的集合。
  3. 数据库分为非关系型数据库和关系型数据库(RDBMS),关系型数据库主要有:Oracle,MySOL, MS SQL Server,Sqlite。因为免费和开源,MySQL是WEB时代使用最广泛的数据库。
  4. SQL是结构化查询语言,是操作RDBMS的数据库语言。常用的语句有:DQL,数据查询语言 DML,数据操作语言 DDL,数据定义语言等。刚开始接触,需要掌握数据的增删改查(CRUD)等常用操作。
  5. MySQL是一个关系型数据库管理系统。开源,免费,适用范围广,是学习数据库开发的首选。
服务器端安装
安装服务器端
sudu apt-get install mysql-server
启动服务
sudo service mysql start
停止服务
sudo service mysql stop
重启服务
sudo service mysql restart
客户端安装
安装服务器端
sudu apt-get install mysql-client
连接命令
sudo -u -p
退出命令
quit | exit | ctr+d
今天没有使用,暂时略

命令行脚本

数据库命令
查看所有数据库
show databases;
使用数据库
use <数据库名>;
查看当前使用的数据库
select database();
创建数据库
create database <数据库名> charset=utf8;
删除数据库
drop database <数据库名>;
数据表命令
查看当前数据库中所有的表
show tables;
查看表结构
desc <表名>;
创建表
create table <表名>(
column1 datatype contrai,
column2 datatype,
column3 datatype,
...
columnN datatype primary key(one or more columns)
);
ex1:创建班级表
create table classes(
id int unsigned auto_increment primary key not null,
name varchar(10)
);
ex2:创建学生表
create table students(
 id int unsigned primary key auto increment not null,
 name varchar(20) default '',
 age tinyint unsigned default 0,
 height decimal(5,2),
 gender enum('男','女','中性','保密'),
 cls_id int unsigned default 0
);
修改表-添加字段
alter table <表名> add <列名> <类型>
ex:
alter table student add birthday datetime;
修改表-修改字段-重命名版
alter table <表名> change <原名> <新名> <类型及约束>;
ex:
alter table students change birthday birth datatime not null;
修改表-修改字段–不重命名版
alter table <表名> modify <列名> <新类型及约束>;
ex:
alter table students modify birth date not null;
修改表-删除字段
alter table <表名> drop <列名>;
ex:
alter table students drop birth;
删除表
drop table <表名>;
ex:
drop table students;
查看表的创建语句
show create table <表名>;
ex:
show create table students;
数据命令(CRUD)
查询所有列
select * from <表名>;
查询指定列
select <列1><列2>..<列n> from <表名>;
全列插入
insert into <表名> values(...);
ex:
insert into students values(0,'郭靖',1,'蒙古','2016-1-2');
部分列插入
insert into <表名> (列1,列2...) values (值1,值2...);
ex:
insert into students (name,hometown,birthday) values ('黄蓉','桃花岛','2016-1-2')
全列多行插入
insert into <表名> values (...),(...)...(...);
ex:
insert into classes values (1,'python1'),(2,'C++');
修改
update <表名> set <列1=值1>,<列2=值2>...<列3=值3> where <条件>;
ex:
updata students set name='梁朝伟',age=18 where id=5;
删除
物理删除
delete from <表名> where <条件>;
ex:
delete from students where id=5;
逻辑删除:
update studnets set is_delete=1 where id=5;

你可能感兴趣的:(学习日志,数据库)