MySQL初步理解,简易单表增删改查
什么是数据库?
存储数据的仓库,本质是一个文件系统,封装了算法和文件
之前数据的存储模式
阶段1:集合 数组 变量
缺点:数据存储在内存中,不能实现数据的持久化存储
阶段2:IO流 结合文件 .txt .xml....
优点:数据存储在磁盘上,数据可以实现持久化存储
缺点:数据操作时,算法必须自己实现,但是相当一部分算法实现重复
阶段3:数据库
优点:使用专门的程序封装了算法部分
数据库与IO比较:算法 + 文件存储数据
数据库结构:
算法部分:.exe程序 lib文件夹下
文件存储部分:以文件和文件夹的形式存储 data文件夹下
表结构:
数据库----javaBean包
表 ----- 一个类
表行 ----- 每一个javaBean对象(具体的类实例)
表数据 ---- 每一个字段(属性)
数据库的具体实现
MySQL ---- 开源免费的小型数据库 6.x之后开始收费
Oracle --- 收费的大型数据库
SQLite ---- 移动端使用的数据库,Android使用
SQLServer----中型数据库 C# .net 常用
MySQL (安装)
启动、关闭服务
net start mysql
net stop mysql
登录MySQL
方式1:MySQL -uroot -proot
方式2:mysql --host=ip --user=root --password=root (用于远程登录)
数据库的操作:增删改查
数据库操作维度有3种(database,table 结构,table 数据)每一种都有比较多的具体方式
A:database的增删改查
增:create database 库名;
create database 库名 character set 字符集;
删:drop database 库名;
改:改名操作不用,容易导致数据丢失
查:show databases;
show create database 库名; (查询创建该数据库的信息,编码)
select database(); 查看当前使用的数据库
B:表结构 (前提是进入某一个数据库(database)中)
use 库名; 对数据库进行切换
增:create table 表名(
//int(可以不指定,11) varchar(必须指定长度) double date(不指定长度) timestamp
字段名 类型(长度)[约束],
字段名 类型(长度)[约束]
) //新建一个文件
删:drop table 表名; //删除文件
查:show tables; //列出当前库下所有的表
desc 表名; //查看当前表的描述,显示字段以及字段相关信息
show create table 表名; //查看建表语句,包含一些表信息,比如编码集
拓展:
select database();
改:(了解)
1:表名
rename table 表名 to 新表名;
2:字段增
alter table 表名 add 新字段名 数据类型(长度)[];
3:字段删
alter table 表名 drop 字段名;
4:字段改1-----只改数据类型
alter table 表名 modify 字段名 新类型;
改字段名以及数据类型
alter table 表名 change 字段名 新名 新类型;
C:表数据
1:向表中插入数据
插入语法:
insert into 表名 values(字段值1,字段值2,...); //字段值必须和表中声明的字段对应
insert into 表名 values(字段值1,字段值2,...),(字段值1,字段值2,...),...; //一次插入多条记录
insert into 表名(指定字段) values (字段对应的值); //为表中指定的字段插入值,没指定的不插入
注意:
1:插入的数据必须和字段声明的数据类型严格一致
2:插入的数据长度必须 <= 字段声明的长度
3:如果指定了列,那么没有指定的列,默认值是null
也可以直接在某列插入null值
4:数值类型以外的数据,必须使用""或者''引起来,建议使用''
2:表数据删除
delete from 表名 where 条件; //可以使用= 判断条件
注意:
1.delete from 表名; //清空表记录
2.truncate 表名; //清空表记录
区别:(ID自增长时)
delete 方式,逐条删除,truncate 直接删除表相关文件,然后新建
3:表数据修改:
update 表名 set 字段=新值 where 条件;
4:表数据查!!!
语法1:select * from 表名;
语法2:select * from 表名 where 条件;
比较运算符:= > < >= <= != <>
between and 类似于 >= and <=
in(值1,值2) 类似于 = or = (in效率高)
like //模糊查询
后面公式:% ---- 0个或者多个字符
_ ---- 一个下划线对应一个字符
null(特殊值)
判断是不是null --- is null
is not null 类似于 not 字段名 is null (前者效率高)
语法3:
select * from 表名; 所有
select 字段1,字段2,...from 表名; 指定字段
select 字段1 as xxx from 表名; 取别名
select distinct xxx from 表名; 去重
乱码:
set names gbk;(临时的)
set character_set_client=gbk;
set character_set_connection=gbk;
set character_set_results=gbk;
或者改变my.ini配置文件
DDL:数据定义语言
DML:数据操作语言
DCL:数据控制语言
DQL:数据查询语言
MySQL初步理解,简易单表增删改查的更多相关文章
- Django框架(八)--单表增删改查,在Python脚本中调用Django环境
一.数据库连接配置 如果连接的是pycharm默认的Sqlite,不用改动,使用默认配置即可 如果连接mysql,需要在配置文件中的setting中进行配置: 将DATABASES={} 更新为 DA ...
- Django框架(九)—— 单表增删改查,在Python脚本中调用Django环境
目录 单表增删改查,在Python脚本中调用Django环境 一.数据库连接配置 二.orm创建表和字段 三.单表增删改查 1.增加数据 2.删除数据 3.修改数据 4.查询数据 四.在Python脚 ...
- mysql数据库单表增删改查命令
数据库DB-database-mysql 课程安排 第一天: 1.数据库定义以及设计 2.mysql服务端的安装 3.mysql-dos操作 库的操作 表的操作 4.mysql客户端navicate工 ...
- $Django orm增删改字段、建表 ,单表增删改查,Django请求生命周期
1 orm介绍 ORM是什么 ORM 是 python编程语言后端web框架 Django的核心思想,“Object Relational Mapping”,即对象-关系映射,简称ORM. 一 ...
- Django ORM基本的单表增删改查
创建表 步骤: 1.app下models.py里创建类(继承models.Model) from django.db import models class UserInfo(models.Model ...
- ORM之单表增删改查
ORM之单表增删改查 在函数前,先导入要操作的数据库表模块,model from model所在的路径文件夹 import model 在views文件中,加的路径: #就一个app01功能的文件 ...
- django(七)之数据库表的单表-增删改查QuerySet,双下划线
https://www.cnblogs.com/haiyan123/p/7738435.html https://www.cnblogs.com/yuanchenqi/articles/6083427 ...
- Django ORM字段类型 单表增删改查 万能的双下划线
1.ORM三种模型 模型之间的三种关系:一对一,一对多,多对多. 一对一:实质就是在主外键(author_id就是foreign key)的关系基础上,给外键加了一个UNIQUE=True的属性: 一 ...
- JAVA 操作远程mysql数据库实现单表增删改查操作
package MysqlTest; import java.sql.DriverManager; import java.sql.ResultSet; import com.mysql.jdbc.C ...
随机推荐
- NX二次开发-自定义添加右键菜单RegisterConfigureContextMenuCallback
首先声明这个知识我以前不知道,是夏天的时候看到别人在唐工的QQ群里问的,唐工说西门子官方有这个例子.那个时候我因为在忙其他事情,也就没去研究那个右键菜单到底是怎么做的.关于自定义添加右键菜单Regis ...
- 详解Windows注册表分析取证
大多数都知道windows系统中有个叫注册表的东西,但却很少有人会去深入的了解它的作用以及如何对它进行操作.然而对于计算机取证人员来说注册表无疑是块巨大的宝藏.通过注册表取证人员能分析出系统发生了什么 ...
- (转)NAT与NAT穿越学习总结--ICE过程讲的不错
转:http://cgs1999.iteye.com/blog/1994072 1.引言网络地址转换(Network Address Translation,简称NAT)是一种在IP分组通过路由器或防 ...
- 京东云Ubuntu下安装mysql
1.sudo apt-get install mysql-server,输入y后输入密码 2.sudo apt isntall mysql-client 3.sudo apt install libm ...
- Codeforces 1183A Nearest Interesting Number
题目链接:http://codeforces.com/problemset/problem/1183/A 题意:求不小于 a 且每位数和能被 4 整除的 最小 n 思路:暴力模拟就好. AC代码: # ...
- JMeter轻松实现大数据量AI图像识别接口测试
****************************************************************************** 本文主要介绍利用Jmeter进行AI图像识 ...
- python中的模块以及包导入
python中的导入关键字:import 以及from import 1.import import一般用于导入包以及模块. 不过有个小问题: (1)当导入的是模块的时候是可以直接可以使用模块内的函 ...
- 2019-4-26-VisualStudio-开发文件自定义工具单文件生成工具
title author date CreateTime categories VisualStudio 开发文件自定义工具单文件生成工具 lindexi 2019-04-26 10:49:32 +0 ...
- Vue报错type check failed for prop
在报错的'value'属性前面加:或者去掉:即可解决问题.
- tomcat之redis
Nginx服务器:[root@nginx ~]# vim /usr/local/nginx/conf/nginx.confupstream tomcat_pool { server 192.168.2 ...