数据库
Posted 球球啦啦啦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库相关的知识,希望对你有一定的参考价值。
数据库 定义:存储数据的仓库,本质是文件系统,可以对数据增删改查等操作 数据库管理系统:用于建立、使用维护数据库的大型软件,保证数据库的安全。通过管理系统访问其中数据 常见数据库: mysql :开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。 Oracle :收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。 DB2 :IBM公司的数据库产品,收费的。常应用在银行系统中. SQLServer:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。 SyBase :已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。 SQLite : 嵌入式的小型数据库,应用在手机端。 Java相关的数据库:MYSQL,Oracle. 数据库在系统服务: 开启/关闭: 方式1: 我的电脑-----> (右键)管理---->服务和应用程序---->服务----找到MySQL服务右键启动或关闭 方式2: 进入dos窗口 使用命令: net start mysql 开启MySQL服务; 命令:net stop mysql 关闭MySql服务 登陆MySQL: 格式1:cmd> mysql –u用户名 –p密码 例如:mysql -uroot –proot 格式2:cmd> mysql --host=ip地址 --user=用户名 --password=密码 例如:mysql --host=127.0.0.1 --user=root --password=root SQL分类: 数据定义语言:DDL,用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等 ? 数据操作语言:DML,用来对数据库中表的记录进行更新。关键字:insert,delete,update等 ? 数据控制语言:DCL,用来定义数据库的访问权限和安全级别,及创建用户。 ? 数据查询语言:DQL,用来查询数据库中表的记录。关键字:select,from,where等 语法:不分大小写 分号结尾 数据类型:int:整型 double:浮点型 varchar 字符串型 date 日期类型(yyyy-MM-dd)只有年月日 数据库操作: 创建数据库: create database 数据库名; create database 数据库名 character set 字符集; 查看数据库: 查看所有:show databases; 查看某一个:show create database 数据库名; 删除数据库: drop database 数据库名称; 切换数据库: use 数据库名; 查看正在使用的数据库: select database(); 数据表操作: 创建表: create table 表名( 字段名 类型(长度) 约束, 字段名 类型(长度) 约束 ); 主键约束: 1.在创建表时创建主键,在字段后面加 create table tablename( id int primary key, ....... ) 2. 在创建表时创建主键,在表创建的最后来指定主键 create table tablename( id int, ......., primary key(id) ) 删除主键: alter table 表名 drop primary key; 主键自动增长:主键字段后加auto_increment(只适用MySQL) 查看表: 查看所有:show tables; 查看表结构:desc 表名; 删除表: drop table 表名; 修改表结构:altrt table 表名 添加列:? alter table 表名 add 列名 类型(长度) 约束; 修改列的类型长度及约束:?alter table 表名 modify 列名 类型(长度) 约束; 修改列名:? alter table 表名 change 旧列名 新列名 类型(长度) 约束; 删除列:? alter table 表名 drop 列名; 修改表名 rename table 表名 to 新表名; 修改表的字符集:?alter table 表名 character set 字符集; 添加数据:insert into 表名 常规:insert insert into 表名(列名1,列名2,列名3)values(值1,值2,值3) (可忽略主键) 简写:insert into 表 values (值1,值2,值3..); --向表中插入所有列 (不能忽略主键) 一次加多个:insert into 表名 (列名1,列名2,列名3) values (值1,值2,值3),(值1,值2,值3);
INSERT INTO product (id,pname,price) VALUES (1,‘笔记本‘,5555.99); 添加数据格式,不考虑主键 INSERT INTO product (pname,price) VALUES(‘洗衣机‘,800); 添加数据格式,所有值全给出 INSERT INTO product VALUES (4,‘微波炉‘,300.25); 添加数据格式,批量写入 INSERT INTO product (pname,price) VALUES (‘智能机器人‘,25999.22), (‘彩色电视‘,1250.36), (‘沙发‘,5899.02)
注意: 在values中列出的数据位置必须与被加入列的排列位置相对应。 对于自动增长的列在操作时,直接插入null值即可 除了数值类型外,其它的字段类型的值必须使用引号引起 更新表记录:update 表名 set update 表名 set 字段名=值,字段名=值;(全改,慎用!) update 表名 set 字段名=值,字段名=值 where 条件; 如:UPDATE sort SET sname=‘日用品‘ WHERE sid=‘s002‘; 条件查询where的写法:(用id举例子) id=6 id<>6 id不等于6 id<=6 id in(1,3,4,5,6) 包含在内的 多个条件同时成立:and 多个条件任一成立:or 不成立:not between...and... 之间被修改(小值在前,含头尾) like : % 用来匹配多个字符;例first_name like ‘a%’/‘%a’/‘%a%’; _ 用来匹配一个字符。例first_name like ‘a_’;(一个下划线代表一个字符,可用于查询几个字符) 删除表: 删具体某一条: delete from 表名 [where 条件]; 删整表: delete from 表名; truncate table 表名; 删整表的区别: delete 一条一条删除,不清空auto_increment记录数。 truncate 直接将表删除,重新建表,auto_increment将置为零,从新开始。 DOS乱码: 查看所有mysql的编码: show variables like ‘character%‘; 一次性修改:set xxx=gbk;/set names gbk; 永久修改:default-character-set=gbk 客户端编码设置 character-set-server=utf8 服务器端编码设置 注意:修改完成配置文件,重启服务 查询语句: 查询指定字段信息:select 列名1,列名2 from 表名; 查询所有字段:select * from 表名; 去重查询:select distinct 字段 from 表名; 查询重命名列:select 字段名 as 别名 from 表名;(临时改名,实质没改) 查询中进行数学计算:select 列名1,列名2+1000 from 表名; 排序查询:(先过滤条件,在排序) 升序:order by 列名 [asc] (升序可不写asc) 【SELECT * FROM product ORDER BY stock;】 降序:order by 列名 [desc] 【SELECT * FROM product ORDER BY stock DESC;】 聚合函数查询计算(竖列计算): count 求和 select count(列名) from 表名; SELECT COUNT(*) AS‘price‘ FROM product; //所有列和 SELECT COUNT(price) FROM product; //对price列求和 sum 求和 select sum(列名) from 表名; select sum(zmoney) from zhangwu where zname like ‘%收入%‘; //对所有金额列中的收入求和 max/min 求最值 select max(列名) from 表名; avg(列名) 求均值 【不计null】 分组查询:group by 列名 select sum(zmoney) as ‘getsum‘,zname from zhangwu where zname like ‘%支出%‘ group by getsum order by zname; SELECT 字段1,字段2… FROM 表名 GROUP BY 字段 HAVING 条件; having&where区别: ? having是在分组后对数据进行过滤. where是在分组前对数据进行过滤 ? having后面可以使用分组函数(统计函数) where后面不可以使用分组函数。
以上是关于数据库的主要内容,如果未能解决你的问题,请参考以下文章
将代码片段插入数据库并在 textarea 中以相同方式显示
python 用于数据探索的Python代码片段(例如,在数据科学项目中)
如何在片段中使用 GetJsonFromUrlTask.java