热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

初学python之路-day41

数据库的操作数据库可以看作文件夹,表就是一个个文件,记录或者数据行是一行行数据内容。1.首先操作数据库:增加:createdatabase数据库名称;#注意在sql语句的后面要加
数据库的操作
数据库可以看作文件夹,表就是一个个文件,记录或者数据行是一行行数据内容。
1.首先操作数据库: 增加:create database 数据库名称;
#注意在sql语句的后面要加上英文的;结尾 例子 create database db1; 删除:drop database 数据库名称; 例子 drop database db1; 修改:数据库层面没有具体修改指令,删了重建即可 查询:show databases; 使用:use 数据库名称; use db1;
2.数据表操作: 
注意对数据表和数控行进行操作 都要在使用数据库的前提下,use 数据库名称 use db1

2.1增加 新建:
create table 表名 (列名1 列1类型,
列名2 列2类型);
create table t1(
id int ,name char(16)
);

2.2查询:show tables;
desc 表名称;   查看表的结构
show create table 表名称;   查看表的创建过程
        查询过程时若有自增序列可以看到主键自增:
        show session variables like 'auto_inc%';
    set session auto_increment_increment = 2;
    show global  variables like 'auto_inc%';
    set global auto_increment_increment = 2;
           可以查看主键自增的步长并设置

2.3修改:
修改字段:
alter table 表名(t3) change 原列名(name) 新列名和其属性
(username varchar(
32) not null default ''); 新增字段: alter table 表名(t3) add 新列(pwd char(32) not null default ''); 删除字段: alter table 表名(t3) drop 列名(pwd); 2.4删除: drop table 表名; 连带着将数据表中的所有数据都会删掉
3.数据行:
3.1增加
增加1:
insert into  表名 (列1, 列2) values (值1, 值2);
insert into  t1 (id, name) values (1, 'ww');
改进1:
create table 表名 (列名1 列类型
)engine=Innodb charset=utf8;
引擎: Innodb 和 MyIsam   5.5 版本以上默认Innodb
create table t2 (id  int,name char(32) 
)engine=Innodb charset=utf8;

改进2:
create table 表名 (列名1 列类型 auto_increment primary key
)engine
=Innodb charset=utf8; create table t4 (id int auto_increment primary key,
name char(
32) not null default '' )engine=Innodb charset=utf8; auto_increment : 自增 primary key : 主键索引 (作用: 加快查找的速度) not null : 不能为空 default : 默认值 最终格式: create table 表名 (列1 列属性 [是否为null 默认值], 列2 列属性 [是否为null 默认值],.....列n 列属性 [是否为null 默认值] )engine = 存储引擎 charset = 字符集 create table t4 (id int auto_increment primary key,
name char(
32) not null default '',pwd char(32) not null default '' )engine=Innodb charset=utf8; 列的类型: a。数值型 tinyint : 范围: 有符号: -128到127 无符号: 0 到 255 unsigned smallint:范围: 有符号: -32768到32767 无符号: 0 到 65535 unsigned mediumint:范围: 有符号: -8388608到8388607 无符号: 0 到 16777215 unsigned int bigint 的范围更大 float(M,D) 浮点型 decimal(M,D) 定点型 比float更加的精准 M:小数总共多少位 decimal(5, ) D:小数点后面几位 decimal(5, 2) b. 字符串类型: char : 定长 char(32) 这一列的值就是32 优点: 速度快 缺点: 浪费 varchar : 变长 varchar(32) 优点: 不浪费, 节省空间 缺点: 速度慢 text: 文本 范围比较大, 如果存储大量字符的话, 可以使用这个字段 c. 时间类型 date datetime 对于增加数据行还可以: insert into t3 (id, name) values (1, '你好'),(2, '你好啊啊啊啊')之类的
3.2查询:
select * from t3; : 将表中的 所有的列全部列出
select 列名, 列名, 列名 from t3 : 将某一列的值查出

3.3删除:
delete from 表名(t3); 将表中的所有的 数据删除掉, 再次添
加的时候, 继续会延续上一个 ID truncate 表名(t3); 将表中的所有的 数据删除掉, 再次添
加的时候, ID 会重新开始 delete
from 表名(t3) where 条件 name = 'xxxxx'; 3.4修改: update t3 set username='xxxx' where id=3; update t3 set username='xxxx', pwd='xxxxx' where id=3;
外键
由于建立多个表时 若有数据重复或有很长的数据太占用空间,就有了外键

可以重新设计一张表, 这张表 中存放相关信息与数字的对应关系

具体代码:
create table department (
id  int auto_increment primary key, 
depart_name varchar(32)  not null  default ''
)engine=Innodb charset=utf8;
        
insert into department (depart_name) values ('公关'), ('关关'),('关公');
        
create table userinfo (    
id  int auto_increment primary key, 
name varchar(32) not null default '',
depart_id int not null  default 1,
# constraint 外键名(fk_userinfo_depart) foreign key
(列名(depart_id)) references 表名(department)(关联的列名(id)),
constraint fk_userinfo_depart foreign key (depart_id)
references department(id) )engine
=Innodb charset=utf8; 注意 若第二个表存着第一个表的对应关系 那么应该先创建第一个表 不然会报错 insert into userinfo (name, depart_id) values ('root1', 1); insert into userinfo (name, depart_id) values ('root2', 2); 错误的 注意: 创建多个外键的时候, 名称不能一样 =====> 一对多

 


推荐阅读
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
author-avatar
爱吹泡泡de鱼_436
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有