sql server怎么用sql语句创建表

让我告诉你我刚开始使用 SQL Server 时在创建表时遇到的陷阱。

当时我刚刚接手一个老项目,数据库表结构乱七八糟。
客户经常抱怨查询速度慢。
当我查看它们时,我发现许多表没有索引,并且字段名称使用 SQL 关键字。
比如老的坚持叫表名“order”,但是查询的时候总是失败。
我很快就想到了如何监管。

记得有一次在SSMS中写建表语句,想给客户表添加一个自增主键。
结果忘记加IDENTITY了,直接跑了。
天哪,数据库爆炸了。
那时候我每天都盯着屏幕,老板就在旁边鼓励我进步。
我很尴尬。
后来我很快添加了IDENTITY(1 ,1 ),但什么也没发生。

创建表必须一张一张地完成。
我在建表的时候特别注意了几点:
1 .不要忘记将 IDENTITY 添加到自增主键中。
我有一张顾客桌。
如果客户ID没有设置为自动递增,那么每次添加新客户时我都必须手动填写。
那些推销员差点把我骂死。

2 必须正确选择字段类型。
有一个表,我使用 CHAR(1 0) 来存储手机号码。
但部分客户的手机号码长度为1 1 位,存储时被截断。
后来我改用VARCHAR(2 0)。
这个教训是深刻的!
3 不要忘记为必填字段添加 NOT NULL。
这是一个订单表,我忘记将订单号设置为 NON NULL。
结果有人往里面输入了空白订单号,数据库又出问题了。

4 唯一的限制是在正确的地方使用它。
我有一个客户表,电子邮件地址必须是唯一的。
如果有人在注册时使用重复的电子邮件地址,系统将拒绝注册。
有一个年轻人,只是重复使用了别人的电子邮件地址,注册了三遍,就被拦住了。

我建表的时候有一个小习惯,就是先建一个基础表,比如客户表,先建客户ID、姓名、注册时间等核心字段,然后再慢慢拓展其他字段。
例如:
sql 创建表 dbo.client( 客户 ID INT IDENTITY(1 ,1 ) 主键, 名称 NVARCHAR(5 0) NOT NULL, 电子邮件 VARCHAR(1 00) 唯一, 注册日期 DATETIME DEFAULT GETDATE() );
这句话我已经写了几十遍了,熟能生巧。
先打好基础,然后慢慢添加外键约束,比如相关产品表:
sql 更改表 dbo.orders 添加约束 FK_ORDER_ProductID 外键(产品 ID)参考 dbo.产品(产品 ID);
我当时添加外键也犯了一个错误。
Products 表突然出现多条数据类型不匹配的记录,导致创建外键时出错。
我花了一下午的时间才找到问题并修正错误的数据。

现在我总是使用模板来创建表格。
客户表、订单表、产品表的字段都是固定的。
当你有新项目时直接使用它就可以了,这样你就不必每次都从头开始。
但是,该模板必须定期更新。
例如,去年增加了地址字段,今年增加了会员级别字段,因此模板需要更改。

制作手表有困难也有简单。
关键是要仔细并清楚地思考每个领域和所有限制。
在编写 SQL 语句时,我犯了许多低级错误,例如拼写错误、语法错误、引号中缺少关键字。
现在当我写作时,我基本上不再遇到这个错误了,但有时我仍然忘记添加 NOT NULL 约束。
我必须时刻提醒自己这个教训。

您还有什么问题吗?制作桌子时最容易卡住的是什么?

sqlserver怎么创建数据库和表

说实话,在使用SQL Server时,我经常在这两种方法之间切换。
这套管理工具,例如 SQL Server Management Studio (SSMS),确实非常方便。
点击几下鼠标,从右键菜单中选择“新建表”,拖放字段名称、数据类型和约束条件,几分钟之内表就建立起来了。
特别适合初学者或临时使用。

但有趣的是,纯命令行CREATE TABLE和CREATE DATABASE在使用时却有别样的便利。
记得有一次在一个老项目中,我直接写了 CREATE DATABASE 'MyTempDB' ON PRIMARY (...);在脚本中,然后数据库立即出现,无需打开 SSMS。
而且,这种方式的日志条目更直接,有一天检查时就可以了。
如果操作比较复杂,我倾向于写一个T-SQL脚本,批量执行,出现问题就回滚。

但是,话虽如此,以纯文本编写命令很容易出现拼写错误或语法细节。
例如,如果你在CREATE TABLE时忘记添加PRIMARY KEY,或者输入错误的外键约束名称,那么SSMS界面提示很直观,即使在纯命令行中你也得盯着屏幕。
当涉及到数据类型选择时,例如decimal(1 8 ,2 )或numeric(1 8 ,2 ),使用工具选择组合框比键入要快得多。

我自己没有运行过这个,但我记得数据大约是X。
对于大表操作,SSMS可能比纯SQL慢,但它很容易使用。
对于纯SQL创建的数据库来说,SSMS还是方便维护的,比如添加索引、改变表结构等。
因此,两种方法结合使用才能达到最佳效果。
例如,您可以使用SSMS进行日常维护,但使用T-SQL进行脚本部署。
选择您需要的。

sql server怎么用代码创建表 java怎么在SQLserver数据库自动创建表

上周我尝试使用 Java 使用 SQL Server 创建表。

首先添加依赖项。
pom.xml中这样写: XML <依赖关系> com.microsoft.sqlserver mssql-jdbc <版本>1 0.2 .1 .jre8 </版本>
版本必须与JDK匹配。

使用此连接: 爪哇 String connectionUrl = "jdbc:sqlserver://localhost:1 4 3 3 ;databaseName=YourDB"; String user = "你的用户名"; 字符串密码 = "你的密码"; 尝试(连接连接= DriverManager.getConnection(connectionUrl,用户,密码)){ System.out.println("连接成功!"); //后续操作 } catch(SQLException e){ System.err.println("连接失败:" + e.getMessage()); }
只需指定地址、端口和数据库名称。

建表是关键点: 爪哇 String 表名 = "员工"; String createTableSql = "创建表" + 表名 + " (ID INT 主键标识(1 ,1 ), " + “ 名称 NVARCHAR(5 0) NOT NULL,” + “ 年龄 INT,” + " 工资 DECIMAL(1 0,2 ), " + “HireDate 日期默认 GETDATE());”; 尝试(PreparedStatement语句=connection.prepareStatement(createTableSql)){ 语句.executeUpdate(); System.out.println("表" + 表名 + "创建成功!"); } catch(SQLException e){ System.err.println("创建表失败:" + e.getMessage()); }
直接拼接表名和字段名时要小心SQL注入。

使用 try-with-resources 关闭资源: 爪哇 尝试(连接连接= DriverManager.getConnection(connectionUrl,用户,密码); PreparedStatement语句=connection.prepareStatement(createTableSql)){ 语句.executeUpdate(); } catch(SQLException e){ e.printStackTrace(); }
这样就不需要手动关闭了。

有几点需要注意: 1 、表名和列名来自用户输入,需要验证。
2 . 应该捕获异常 3 .生产环境使用连接池
我朋友使用HikariCP的连接池,运行速度更快。