数据表

SQL动态为数据表添加字段

时间秒杀一切 提交于 2019-12-25 18:59:42
把变量字段动态添加至数据表中,为了演示这个例子,首先创建一个临时表,这个临时表只产生一个IDENTITY字段, BEGIN IF OBJECT_ID ( ' [dbo].[#DummyTable] ' ) IS NOT NULL DROP TABLE [ dbo ] . [ #DummyTable ] CREATE TABLE [ dbo ] . [ #DummyTable ] ( [ ID ] INT IDENTITY NOT NULL ) END 我们宣告一个变量,作为临时表添加的字段。 -- 需要添加字段 DECLARE @FieldName NVARCHAR ( 50 ) = ' Day20101227 ' 接下来,由于字段是一个变量,得需要使用EXECUTE来执行这个动态SQL语句, 代码 EXECUTE ( ' IF NOT EXISTS(SELECT [name] FROM [tempdb].[dbo].[syscolumns] WHERE [id] = OBJECT_ID( '' [tempdb].[dbo].[#DummyTable] '' ) AND [tempdb].[dbo].[syscolumns].[name] = ''' + @FieldName + ''' ) ALTER TABLE [tempdb].[dbo].[#DummyTable] ADD

用递归的方法实现无限极分类

和自甴很熟 提交于 2019-12-25 18:53:44
通常我在写项目的时候,在写一些例如商城分类的时候会实现对应分类的上级分类,或者其它项目部门管理的上级部门的时候一般就会用到无限极分类来进行分类 第一步:首先在数据表设计的时候,如果要实现无限极分类,一般我会在数据表多添加一个字段pid,下面我通过一张新建的数据表来说明一下, (1)建表: -- ---------------------------- -- Table structure for pid -- ---------------------------- DROP TABLE IF EXISTS `pid`; CREATE TABLE pid ( id tinyint unsigned NOT NULL AUTO_INCREMENT primary key comment '主键id', name varchar(32) NOT NULL, nickname varchar(32) DEFAULT NULL, pid tinyint(10) unsigned DEFAULT NULL, sort mediumint(10) unsigned DEFAULT 50 ) ENGINE=InnoDB DEFAULT CHARSET=utf8; (2)插入数据: -- ---------------------------- -- Records of pid -- -----

MySQL实用基本操作

淺唱寂寞╮ 提交于 2019-12-25 10:33:41
本博客写是装好Mysql并配好环境变量后的基本操作(windows10系统下)且都是黑框内的操作。 一、登陆MySQL 首先启动服务,在桌面左下角图标处点击右键Windows PowerShell(管理员)(A),然后会出来个蓝框,在蓝框内输入 net start mysql80 (80是对应的MySQL版本如果是其他版本则输入对应的版本号,如5.7版本输入net start mysql57),然后按回车键,若显示服务已启动,则服务启动成功。 在搜索框内输入cmd则会弹出命令提示符点击进去,所谓的黑框就弹了出来,黑框不一定是黑的,可以通过右键点击左上角改变其属性,接着在黑眶内输入 mysql -u root -p ,按回车键,输入你的密码,敲回车,登陆成功进入MYSQL。 二、对数据库的操作 (1)查看数据库: show databases; (2)创建数据库: create database 数据库名; (3)使用数据库: use 数据库名; (4)删除数据库: drop database 数据库名; 部分实例 三、对表的操作 (1)创建数据表 : create table 数据表名 ( 属性1 类型, 属性2 类型,); 类型后边可以加限定条件:primary key(主键)、not null(不能为空)、unique(唯一的)、foreign key(外键)、default

linux 下 mysql 常用命令

谁说胖子不能爱 提交于 2019-12-24 23:37:37
1.开启和关闭 1.1.开启   service mysql start 1.2.关闭   service mysql stop 1.3.重启   service mysql restart 2.登录 2.1.密码明文   语法:mysql -u用户名 -p用户密码   举例:mysql -uroot -p123456 2.2.密码密文   语法:mysql -u用户名 -p+回车,然后输入密码   举例:mysql -uroot -p      3.修改密码 3.1.SET PASSWORD命令(需登录)   语法:mysql> set password for 用户名@localhost = password('新密码');   举例:mysql>set password for root@localhost = password('123456'); 3.2.使用sql语句更新 mysql 库中的 user 表(需登录)   mysql> use mysql;   mysql> update user set password=password('123') where user='root' and host='localhost';   mysql> flush privileges; 3.3.mysqladmin命令,明文(不需登录)   语法:mysqladmin

查找Mysql慢查询Sql语句

流过昼夜 提交于 2019-12-24 23:36:26
一、MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_log 这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句。 2,long_query_time 当SQL语句执行时间超过此数值时,就会被记录到日志中,建议设置为1或者更短。 3,slow_query_log_file 记录日志的文件名。 4,log_queries_not_using_indexes 这个参数设置为ON,可以捕获到所有未使用索引的SQL语句,尽管这个SQL语句有可能执行得挺快。 二、检测mysql中sql语句的效率的方法 1、通过查询日志 (1)、Windows下开启MySQL慢查询 MySQL在Windows系统中的配置文件一般是是my.ini找到[mysqld]下面加上 代码如下 log-slow-queries = F:/MySQL/log/mysqlslowquery。log long_query_time = 2 (2)、Linux下启用MySQL慢查询 MySQL在Windows系统中的配置文件一般是是my.cnf找到[mysqld]下面加上 代码如下 log-slow-queries=/data/mysqldata/slowquery。log long_query_time=2 说明 log-slow-queries = F:/MySQL/log

数据库自增主键用完了怎么办

老子叫甜甜 提交于 2019-12-24 05:44:35
引言 在面试中,大家应该经历过如下场景 面试官:"用过mysql吧,你们是用自增主键还是UUID?" 你:"用的是自增主键" 面试官:"为什么是自增主键?" 你:"因为采用自增主键,数据在物理结构上是顺序存储,性能最好,blabla..." 面试官:"那自增主键达到最大值了,用完了怎么办?" 你:"what,没复习啊!!" (然后,你就可以回去等通知了!) 这个问题是一个粉丝给我提的,我觉得挺有 意(KENG)思(B)! 于是,今天我们就来谈一谈,这个自增主键用完了该怎么办! 正文 简单版 我们先明白一点,在mysql中,Int整型的范围如下 类型 最小值 最大值 存储大小 Int(有符号) -2147483648 2147483648 4 bytes Int(无符号) 0 4294967295 4 bytes 我们以无符号整型为例,存储范围为0~4294967295,约43亿!我们先说一下,一旦自增id达到最大值,此时数据继续插入是会报一个主键冲突异常如下所示 //Duplicate entry '4294967295' for key 'PRIMARY' 那解决方法也是很简单的,将Int类型改为BigInt类型,BigInt的范围如下 类型 最小值 最大值 存储大小 BigInt(有符号) -9223372036854775808 9223372036854775808 8

数据表中常见的数据类型

﹥>﹥吖頭↗ 提交于 2019-12-24 02:49:30
数据表中常见的数据类型有:整数类型、浮点数类型、日期与时间类型、字符串类型、二进制类型、布尔类型。 整数类型: 1int型 :表示整型数值,是由四个字节组成的整数,输出范围(-2147~2147),数据类型32位 short型 :表示短整型,输出范围是(-32768 ~ 32767),数据类型16位 long型 :表示长整型,是由八个字节组成的整数,数据类型64位 byte型 :表示最小数据单位,数据类型8位,常用语文件中的数据 浮点数类型: float :表示单精度浮点数值,占用四个字节,数据类型是32位 Double :表示双精度浮点数值,占用八个字节,数据类型是64位 日期与时间类型: year型 :表示年份值,格式为(YYYY) Data型 :表示日期值,格式为(YYYY-MM-DD) time型 :表示更精确时间值或持续时间,格式为(HH:MM:SS) datatime型 :表示混合日期和时间值,格式为(YYYY-MM-DD HH:MM:SS) timestamp型 :自动存储记录修改时间(入股哦数据库里面有timestamp数据类型,就应该考虑时区问题 字符串类型 : Charchar(n) :固定长度,最多255个字符 Varchar(n) :固定长度,最多65535个字符 text :可变长度,最多65535个字符 Tinytext :可变长度,最多255个字符

从mysql元数据表中通过sql 构造/还原/生成 建表语句

。_饼干妹妹 提交于 2019-12-23 19:46:12
从mysql元数据表中通过sql 构造/还原/生成 建表语句 set @schema := 'zabbix'; SELECT d.sql_script FROM (SELECT c1.* FROM (SELECT 1 typ_seq, table_name, CONCAT('create table "', UPPER(table_name), '"(') sql_script, 0 inner_seq FROM information_schema.tables WHERE `TABLE_SCHEMA` = @schema UNION ALL SELECT 2, table_name, sql_script, inner_seq FROM (SELECT table_name, CONCAT(IF(a.`ORDINAL_POSITION` = 1, '', ','), '"', UPPER(column_name), '" ', COLUMN_TYPE, CASE WHEN COLUMN_DEFAULT IS NULL OR TRIM(COLUMN_DEFAULT) = '' THEN '' ELSE CONCAT(' DEFAULT ', CASE WHEN data_type IN ('bigint' , 'int', 'decimal', 'tinyint', 'float

SQL常用命令

孤者浪人 提交于 2019-12-23 02:39:01
SQL 常用命令使用方法: (1) 数据记录筛选: sql="select * from 数据表 where 字段名 = 字段值 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 like '% 字段值 %' order by 字段名 [desc]" sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 in (' 值 1',' 值 2',' 值 3')" sql="select * from 数据表 where 字段名 between 值 1 and 值 2" (2) 更新数据记录: sql="update 数据表 set 字段名 = 字段值 where 条件表达式 " sql="update 数据表 set 字段 1= 值 1, 字段 2= 值 2 …… 字段 n= 值 n where 条件表达式 " (3) 删除数据记录: sql="delete from 数据表 where 条件表达式 " sql="delete from 数据表 " ( 将数据表所有记录删除 ) (4) 添加数据记录: sql="insert into 数据表 ( 字段 1, 字段 2, 字段 3 …) values

SQL语句的添加、删除、修改多种方法

大兔子大兔子 提交于 2019-12-23 02:38:42
SQL语句的添加、删除、修改虽然有如下很多种方法,但在使用过程中还是不够用,不知是否有高手把更多灵活的使用方法贡献出来? 添加、删除、修改使用db.Execute(Sql)命令执行操作 ╔----------------╗ ☆ 数据记录筛选 ☆ ╚----------------╝ 注意:单双引号的用法可能有误(没有测式) Sql = "Select Distinct 字段名 From 数据表" Distinct函数,查询数据库存表内不重复的记录 Sql = "Select Count(*) From 数据表 where 字段名1>#18:0:0# and 字段名1 来源: https://www.cnblogs.com/11wf/archive/2011/11/28/2266002.html