mysql 笔记3

--建库
create database dsdb DEFAULT CHARACTER set utf8 collate utf8_general_ci;
/*
删除数据库
drop DATABASE 数据库名称
*/
drop DATABASE dsdb;

--显示数据库
show DATABASES;

--切换数据库
use 数据库名称;
use dsdb;

--建表
create table 表名(字段名 数据类型[长度] 属性[非空 默认值 主键 注释...]) charset=utf8,ENGINE=INNODB;

create table user_info(
user_id int(11) not null primary key auto_increment,
user_name VARCHAR(50) DEFAULT null,
user_sex char(2),
user_age int(3)
) charset=utf8,ENGINE=INNODB;

--删除表
drop TABLE 表名;
drop table user_info;

--复制表
create table 新表 select * from 旧表; //不能复制键
create table user_info_back select * from user_info;

create table 新表 like 旧表;
create table user_info_back2 like user_info;
--修改
alter table 表名 add 字段名 数据类型 属性; --添加字段
alter table user_info add user_address varchar(500) not null;

alter table 表名 change 旧的字段名称 新名称 数据类型 属性;--修改字段
alter table user_info change user_address my_address char(100) null;

--删除
alter table 表名 drop 字段名
alter table user_info drop my_address;

--添加主键
alter table 表名 add primary key (字段名);
alter table user_info_back add primary key (user_id);

--修改名称
alter table 表名 rename to 新名称;
alter table user_info_back rename to user_new_table;

数据操作:
插入数据:
insert into 表名([字段名称]) value ([列表值])
insert into 表名 set 字段名 = 值, 字段名= 值......ALTER
--复制表
insert into 表名1 select * from 表名2;
use yygdb;

show variables like ‘autocommit‘;
--值0和OFF都是一样的,当然,1也就表示ON。

SET AUTOCOMMIT = 0;
insert into userinfo (useName,useSex,useAge)
VALUES
(‘托马斯‘,‘男‘,6),
(‘托马斯1‘,‘男‘,6),
(‘托马斯2‘,‘男‘,6),
(‘托马斯2‘,‘男‘,6),
(‘托马斯2‘,‘男‘,6),
(‘托马斯2‘,‘男‘,6),
(‘托马斯3‘,‘男‘,6);
ROLLBACK;

select * from userinfo
insert into userinfo set useName="詹姆斯",useSex=‘男‘,useAge=20;
create table userinfo_new select * from userinfo;

--修改
update 表名 set 字段名称=值,字段名称=值,字段名称=值.... where 条件表达式;

update userinfo set useSex=‘车‘ , useAge=‘100‘ where id<24 and useAge<18;

--删除 几种方式区别?
delete from 表名 where 条件表达式;

delete from userinfo where useName=‘托马斯2‘;//删除数据不会释放表空间

truncate table 表名;//删除数据释放表空间

truncate table userinfo;

DROP TABLE IF EXISTS order_table;

--查询
select * [字段名] from 表名 where 条件表达式;

--查询时 取部分数据(分页查询) limit
select * [字段名] from 表名 limit 数据条数;

select * from userinfo order by id DESC limit 2,3;

select * from userinfo limit (当前页数-1) * 每页条数, 每页条数;

select * from userinfo limit 8,4;

create table employee(
id SMALLINT(4) not null auto_increment,
employee_id INT(4) not null,
first_name varchar(25) not null,
last_name varchar(35),
email VARCHAR(55) not null,
salary decimal(8,2) not null,
primary key (id)
);

insert into employee VALUES(1,1,‘bob‘,‘connwer‘,‘245532fdf‘,453.90),
(2,2,‘bob2‘,‘connwehr‘,‘245532fdf‘,453.90),
(3,3,‘bob3‘,‘conndfwer‘,‘245532fdf‘,453.90),
(4,4,‘bob4‘,‘connwbfder‘,‘245532fdf‘,453.90);

创建视图 虚表(保护数据信息,不让别人随便查看,如工资)
create view employee_contact_info_view as
select first_name ,last_name,email from employee order by last_name asc;

select * from employee_contact_info_view;
show tables;

show create view employee_contact_info_view;
视图可以和所有子句和函数联合使用

新建视图,并给字段重新取名字
create view employee_view(firstname,lastname,emailaddress)as
select first_name,last_name,email from employee order by last_name asc;
alter view employee_contact_info_view(First_name,Last_name,Employee_id) as
select first_name,last_name,employee_id from employee order by last_name asc;
update employee_contact_info_view set Last_name=‘hahah‘ where Employee_id=1;

select * from information_schema.views;

drop view employee_view;

时间: 2024-10-06 08:53:55

mysql 笔记3的相关文章

mysql笔记第三天

一下午在学习mysql,最有价值的就是这一点点 Order by 可以对在select字句中出现的字段位置进行排列eg:select name,count(*) from eg group by name order by 2;;这里2的意思跟为count(*)取一个别名是一样的意思, Join(联结)的用法: 将几个表格进行联结,on后面就是搜索的条件,inner join on内联结,left join on 左联结,right右联结,cross join交叉联结(得到的结果是被连接的两个数

mysql笔记3_存储引擎

表的存储引擎类型: MyISAM:应用于读写操作为主,很少更新.删除.并对事物的完整性.并发性要求不高的情况. InnoDB:应用于对事物的完整性要求高,在并发条件下要求数据一致的情况. Memory:标的数据存放在内存中,访问效率高,但一旦服务关闭,表中的数据全部丢失. Merge:是一组MyISAM表的组合,可以突破对单个MyISAM表大小的限制,提高访问效率. mysql笔记3_存储引擎

mysql笔记1_数据库发展史

数据库发展史 萌芽阶段--文件系统 初级阶段--第一代数据库:网状模型.层次模型的数据库. 中级阶段--第二代数据库:关系型数据库和结构化查询语句. 高级阶段--第三代数据库:“关系-对象”型数据库. 数据库管理系统(DBMS) SQL(Strutured Query Language)结构化查询语言 DDL(Data Definition Language)数据定义语言 DML(Data Management Language)数据操作语言.mysql自动提交(auto commit),Ora

【MySQL笔记】SQL语言四大类语言

SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL. 1. 数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块: SELECT <字段名表> FROM <表或视图名> WHERE <查询条件> 具体参看:[MySQL笔记]数据库的查询 2 .数据操纵语言DML INSERT - insert data into a table(插入) UPDATE - upda

mysql笔记5_多表连接

多表连接: 交叉连接(笛卡尔积)cross join(基本上无实际意义,避免). 内连接,即等值连接 inner join...on... 左外连接 left join...on...主表的记录全部显示,如果没有记录则补空.连接左边的表作为主表. 右外连接 right join...on...同左外连接. 全外连接 自连接 主表.从表是同一张表. 子查询:为主查询提供查询数据. mysql笔记5_多表连接

mysql笔记4_函数

常用函数: concat 连接函数  Lower 转小写  upper 转大写  Length 长度 substr  子串  now 当前时间  Year 当前年份... 流程函数: ifnull(column,result1,result2) 判定字段为空则返回result2,不为空则result1. case...when...then...else...end 分支语句. 聚合函数: AVG 平均值  sum 求和  MAX 最大值  MIN 最小值  count[distinct] 统计

mysql笔记6_索引

什么是索引? 数据库中的一个对象. 在数据库中用来加速表的查询. 通过使用快速路径访问方法定位数据,减少了磁盘的i/o. 与表分别独立存放,但不能独立存在,必须属于某个表. 由数据库自动维护,表被删除时,该表上的索引自动别删除. 索引的作用类似于书的目录,几乎没有一本书没有目录,因此几乎没有一张表没有索引. 怎样创建索引: create index 索引名 on 表名(字段名); 使用索引: where之后加上索引字段即可. 索引原理: 索引页 表 index_name|       loc  

mysql笔记7_视图

视图的作用: 可以限制对数据的访问. 可以使复杂的查询变的简单. 提供了数据的独立性. 提供了对相同数据的不同显示. 创建: create view 视图名 as 查询语句 使用: select * from 视图名 删除: drop view 视图名 mysql笔记7_视图

mysql笔记8_数据库设计步骤

step1: 收集信息,与谈系统有关的人员进行交流.座谈,充分了解数据库需要完成的任务. 示例:blog系统 基本功能:发表和编辑文章,多用户支持,全文检索,RSS支持,图片收藏,管理站内短消息. step2: 标识对象(实体Entity) 标识数据库要管理的关键对象或实体. 实体一般是名词: 博主账号:发表和管理文章.图片管理. 文章类别 文章 文章回复 图片分类 图片 连接分类 连接 短消息 step3: 标识每个实体的属性 E-R图(Entity-Relationship) |     符

Mysql 笔记二

Mysql 笔记二 Table of Contents 1. 前言 2. Master Thread 工作方式 2.1. 主循环(loop) 2.2. 后台循(backgroup loop) 2.3. 刷新循环(flush loop) 2.4. 暂停循环(suspend loop) 3. InnoDB关键特性 3.1. 插入缓冲(Insert Buffer) 3.2. 两次写(Double Write) 3.3. 自适应哈希索引(Adaptive Hash Index),默认开启 3.4. 异步