栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 操作数据库(1)SQL基础

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 操作数据库(1)SQL基础

一、数据库
  1. 关系型数据库
  • 常见的关系型数据库:SQL Server、MySql、MariaDB、SQLite、ORACLE、PostgreSQL等
  1. 非关系型数据库
  • 常见的非关系型数据看:MongoDB、Hbase、redis、CouchDB、Neo4j、Cassandra、memcached
  • 非关系型数据库又分为:1. 文档型、 2.key-value型、3.列式数据库、图形数据库
    https://pan.baidu.com/s/1i5gjHat 密码: uuqj
二、 MySql 1. 什么是mysql
典型的关系型数据库 ([Mysql](https://baike.baidu.com/item/mySQL/471251?fr=aladdin))
 
2. mysql 基础

(1) 安装配置
  ~~    ~~   安装社区版 5.7
(2)图形化管理工具
phpAdmin 、Navticat
 

3.语法基础 DDL (Data Define Language)
  • CREATE 创建表/数据库
  • ALTER 创建表/数据库
  • DROp 删除表/数据库
DML (Data Manage Language)
  • INSERT
  • UPDATE
  • DELETE
  • SELECT

 

基础:

创建数据库和使用数据库:
- CREATE DATAbase mydatabease ;
- USE mydatabase;
查看已有的数据库:
- SHOW DATAbaseS;

 

创建学生表格:

     CREATE TEABLE `students` (
    `id` INT NOT NULL AUTO_INCRMENT,
    `name` VARCHAR(200) NOT NULL
   		 ) 

 

常见类型:
- int、char、varchar、datetime
- char、varchar都表示字符串,但char必须占用一定空间,例如200,char一定占满200空间,不管它实际多少字符
- 但varchar只占据实际的字符数量的空间,只表示上限,更加节省空间,一般推荐varchar。
- datetime表示 日期+时间

 
分析学生表的字段:

  • id: 学生的ID
  • name: 学生的名称
  • nickname:学生的昵称
  • sex:性别
  • in_time:入学时间
-- id: 学生的ID
-- name: 学生的名称
-- nickname:学生的昵称
-- sex:性别
-- in_time:入学时间
CREATE TABLE `stuents` (
	`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
	`name` VARCHAR(20) NOT NULL,
	`nickname` VARCHAR(20) NULL,
	`sex` CHAR(1) NULL,
	`in_time` DATETIME NULL 
);

 

插入数据
语法:INSERT INTO table_references VALUE(S)…

  • 创建表格时指定编码
CREATE TABLE `stuents2` (
	`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
	`name` VARCHAR(20) NOT NULL,
	`nickname` VARCHAR(20) NULL,
	`sex` CHAR(1) NULL,
	`in_time` DATETIME NULL 
)DEFAULT CHARSET 'UTF8';  #指定编码
  • 插入一条数据
INSERT INTO `stuents2` VALUE (2,'张三','三丰','男',now());

 

  • 指定插入字段的名称(使得能自增)不需指定id
INSERT INTO `stuents2` (`name`,`nickname`,`sex`,`in_time`) VALUE ('李四','四小','男',now());
  • tips : 字段名称使用反引号" ` “, 实际内容使用单引号” ’ "
     
  • 插入多行 :
INSERT INTO `stuents2` (`name`,`nickname`) VALUES 
	('李四1','四小x'),
	('李四2','四小2'),
	('李四3','四小3'),
	('李四4','四小4')
;

 

查询数据
  • 语法格式: 有顺序要求

    SELECT 
        select_expr,...
    FROM	table_references
    [WHERe where_definition]
    [GROUP_BY {col_name|expr|position}]
    [HAVINg where_definition]
    [ORRDER_BY {col_name|expr|position}
        [ASE|DESC],...]
    [LIMIT {[offset,] row_count}]
    

SELECt `id`,`name`,`nickname` FROM `stuents2` WHERe `sex`='男' ORDER BY DESC LIMIT 1,2;

 

修改数据

语法:

  UPDATe table_references
      SET col_name1 = expr1 [,col_name2 = expr2]
  [WHERe where_definition]

 
修改性别


UPDATE `students2` SET `sex`='女'  WHERe `sex`='男';
  • 修改时必须注意是否要添加WHERe条件;
  • 如果不添加WHERe,将会修改相应的全部内容。
  • 谨慎操作

 

删除数据

语法: 必须注意是否要限定删除范围

    DELETE FROM table_name 
 [WHERe where_definition]

 

DELETe FROM `students2` WHERe `sex`='男';

  

其他语法

比较不常用的:

  • 新建索引(CREATE INDEX)
  • 修改表(ALTER TABLE)
  • 删除数据库、表、索引、视图等(DROP)
实例1 设计新闻表
  -- ID:新闻的唯一标识
				-- title:新闻标题
				-- types:新闻类型
				-- content:新闻内容
				-- created_at : 发布时间
				-- image:缩略图
				-- author:作者
				-- view_count:浏览量
				-- is_valid:删除标记
操作:
CREATE TABLE `news`(
	`id` INT NOT NULL AUTO_INCREMENT,
	`title` VARCHAR(200) NOT NULL,
	`types`  VARCHAR(20) NOT NULL,
	`content` VARCHAR(2000) NOT NULL,
	`created_at` DATETIME   NULL,
	`image` VARCHAR(300)  NULL,
	`author` VARCHAR(20) NULL,
	`view_count` INT DEFAULT 0,
	`is_valid` SMALLINT 	DEFAULT 1 ,    # 默认值,1为有效新闻,0为无效新闻
	PRIMARY KEY(`id`)
)DEFAULT CHARSET 'UTF8';
** 别忘记语法格式、关键字 ** LIMIT number1,number2 用法笔记
  • number1 是偏移量,从0开始
  • number2是每页显示的数量
  • 假如要显示第5页的内容,并且每页显示5条。则 number1=4 * number2 + 1 = 4 * 5+1=21
转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号